Voetbalcoach van het jaar op basis van data (seizoen 2022/23)
In 2019 heb ik de blog “Voetbalcoach van het jaar op basis van data” geschreven. Hierin is te lezen hoe ik met Alteryx het meest ideale elftal samenstel voor het online spel “Coach van het jaar”.
Ik krijg nog heel vaak reacties en vragen over deze blog: “Wat waren de resultaten van je voorspelde elftal?”, “Hoe ziet het ideale elftal er voor dit seizoen uit?” etc. Erg leuk om te horen dat deze blog na zoveel jaar nog steeds goed gelezen wordt.
Dit triggerde me om ook voor het seizoen 2022-2023 weer mee te doen en om opnieuw de Alteryx logica hier op los te laten om een voorspelling voor het komende seizoen te doen.
Hoe werkte het ook al weer?
Het doel van dit spel is om met een vastgesteld budget een zo sterk mogelijk team samen te stellen. Bijkomende spelregel is dat je van elke club maximaal één speler mag selecteren. Elke speelronde behaalt de geselecteerde speler punten voor hoe hij in de echte wedstrijd presteert. Scoort hij dan levert dit punten op, maar ontvangt hij een gele kaart dan krijgt hij daar strafpunten voor.
Binnen het spel is een spelerslijst van het seizoen 21/22 beschikbaar, waarin de behaalde punten van de actieve spelers van dat seizoen opgenomen zijn. Deze spelerslijst, wat niet meer is dan een Excel file, gebruik ik als basis (input data) voor mijn Alteryx voorspelling.
Team optimizer
Binnen Alteryx heb ik een workflow gebouwd, waarin ik de input data opschoon, bewerk en verrijk.
Het doel van deze workflow is om de behaalde punten in seizoen 21/22 te optimaliseren. Dit is eigenlijk niets meer dan uitrekenen met welke opstelling ik de meeste punten haal op basis van de behaalde punten in het seizoen 21/22. Hierbij houd ik rekening met de gedefinieerde voorwaarden.
Deze voorwaarden of constraints zijn de spelregels van het spel. Een aantal liggen voor de hand zoals het budget, van elke club maximaal één speler en een team mag uit niet meer dan 11 spelers bestaan. Over andere constraints moest wat beter nagedacht worden. Je kunt in het spel je team namelijk met 5 verschillende opstellingen laten spelen. Met andere woorden de constraints voor de posities moeten dynamisch zijn, zodat de workflow tevens de meest optimale opstelling kiest. Dit heb ik gedaan door per positie met ranges te werken. Bijvoorbeeld, het aantal middenvelders mag variëren van 3 tot en met 5 maar er is altijd maar één keeper.
Na deze stappen voed ik de Optimization Tool met enerzijds de behaalde punten in het seizoen 21/22 en de constraints. Deze geeft het volgende resultaat:
De “Objective Value” kun je zien als het maximaal aantal punten dat je kunt behalen, rekening houdend met de constraints.
Om dit wat beter leesbaar te maken schrijf ik de resultaten vervolgens weg in een Excel file waarin ook [Team], [Positie], [Prijs] en [Punten] is toegevoegd:
In de praktijk
Om deze Alteryx workflow heb ik een analytic app gebouwd, wat niet meer is dan een interface om simpel wat parameters aan te kunnen passen. Bijvoorbeeld wanneer je een speler uit wilt sluiten omdat deze geblesseerd is. In bovenstaande gegenereerde ideale team staat Bart Ramselaar bijvoorbeeld opgenomen. Hij is langdurig geblesseerd, met de analytic app interface kan ik hem gemakkelijk uitsluiten van mijn ideale team:
De Alteryx workflow genereerd vervolgens het volgende ideale team:
Voorspelling
Aan het begin van de competitie kunnen blessures en transfers roet in het eten gooien. Op het moment van schrijven is bijvoorbeeld onzeker of Robin Pröpper op tijd fit is. Om op safe te spelen sluit ik hem ook uit van mijn ideale team. Daarnaast heb ik de voorwaarde voor het maximale aantal verdedigers naar 3 gezet, zodat de best mogelijke opstelling voor het 3-4-3 systeem berekend wordt:
Dit resulteert in het volgende team:
Wat opvalt is dat de som van de punten iets lager is dan die van de eerder gegenereerde teams. Omdat dit slechts een klein verschil betreft en ik een persoonlijke voorkeur voor het 3-4-3 systeem heb, ga ik voor deze variant. Mijn startelftal voor de competitie ziet er als volgt uit:
*de wissels heb ik willekeurig en handmatig gekozen. (geupdate op 5-8-2022)
Voortgang
Per ronde is het mogelijk om één speler te wisselen, hiervoor heb ik een wissel optimalisatie workflow gebouwd in Alteryx. Gedurende het seizoen ga ik deze wissel optimalisatie workflow gebruiken. Zodra er 3 wissels doorgevoerd mogen worden ga ik deze blog updaten en een nieuw ideaal team plaatsen.
Tot slot: “resultaten uit het verleden bieden geen garantie voor de toekomst”. Het blijft voorspellen, de factor geluk en toeval is niet te voorzien. Spelers die vorig jaar een goed seizoen draaiden kunnen dit jaar tegenvallen of andersom. Alteryx geeft mij, middels mijn voorspelde ideale team, in ieder geval een goede uitgangspositie.
Houd onze LinkedIn pagina en onze website in de gaten voor de voortgang en nieuwe voorspellingen!
Er zijn dit jaar wat nieuwe regels. Zo tellen assists zwaarder mee voor niet aanvallers. Je mag 2 keer per ronde wisselen gedurende transferwindows. En er zullen 5 ipv 4 periodes zijn waar je meerdere spelers kunt wisselen.
Klopt helemaal, met de wissel optimalisatie workflow kun je het aantal wissels per ronde zelf configureren. Qua wijziging in punten; op een gegeven moment kijk je alleen nog naar de data van het huidige seizoen en tackle je dit probleem. Het uitgangspunt voor het eerste team blijft toch op basis van de data van vorig seizoen.
Noem me negatief, maar enige wat je nu hebt gevonden is het optimale team van vorig jaar. probeer het te combineren met je eigen inschattingsvermogen. Branderhorst gaat niet spelen (kon jij niet weten), Fortuna gaat het niet goed doen, Til gaat eruit gespeeld worden door Simons (Slot wisselde vorig jaar haast niet). Kramer gaat Odgaard missen. En nu zitten er per definitie geen spelers in die vorig jaar niet in de ED speelde (Bergwijn, Simons, Dost)
Ik snap wat je bedoelt. Echter ga ik bij deze analyse uit van de resultaten van vorig seizoen, er was simpelweg geen data beschikbaar voor Bergwijn, Simons en Dost. Na een aantal speelronden is deze data er wel en neem ik dit ook mee in de analyse in de wissel optimalisatie workflow. Wat betreft Til en Branderhorst; een analyse is pas krachtig wanneer je het combineert met domeinkennis, wanneer je PSV en NEC intensiever volgt dan ik dat doe, had je dit vooraf mogelijk kunnen weten inderdaad 😉
wissels zou ik niet zomaar willekeurig kiezen. zijn ook belangrijk als er veel blessures zijn. Tevens tellen ze nu mee voor de helft van punten.
Hallo Jacques, ik begrijp je punt. Echter heb ik de workflow nu niet ingericht op het rekening houden met wisselspelers.
Zelf denk ik dat de belangrijkheid van wissels, voor de helft van de punten ook niet overschat moet worden. Ik verwacht dat, wanneer je wekelijks geblesseerde spelers wisselt, je de impact kunt beperken. Wanneer je budget overhoud zodra “goedkopere” spelers goed presteren, kun je uiteindelijk altijd nog je bank versterken.
Maar het is een interessant punt dat je aankaart.
Ik ben erg benieuwd naar je opstelling voor komend seizoen
Ha Anton,
Dank voor je reactie. Je bent niet de enige die mij hier naar gevraagd heeft 😛 Wegens vakantie heb ik dit jaar helaas geen tijd gehad om een opstelling te maken voor dit seizoen. Wie weet dat ik volgend seizoen wel gewoon weer mee doe. Dan zal ik daar uiteraard weer een blog over schrijven en mijn opstelling delen!