Bundesliga Match Fact Skill: Kwantificering van de kwaliteiten van voetballers met behulp van machine learning op AWS

Bronknooppunt: 1195672

In het voetbal, zoals in veel sporten, zijn discussies over individuele spelers altijd een deel van het plezier geweest. “Wie is de beste doelpuntenmaker?” of "Wie is de koning der verdedigers?" zijn vragen waarover fans voortdurend debatteren, en sociale media versterken dit debat. Bedenk dat Erling Haaland, Robert Lewandowski en Thomas Müller alleen al samen 50 miljoen volgers op Instagram hebben. Veel fans zijn zich bewust van de ongelooflijke statistieken die sterspelers als Lewandowski en Haaland maken, maar verhalen als deze zijn slechts het topje van de ijsberg.

Bedenk dat bijna 600 spelers onder contract staan ​​in de Bundesliga en dat elk team zijn eigen kampioenen heeft: spelers die worden geïntroduceerd om een ​​specifieke vaardigheid in een wedstrijd te gebruiken. Kijk bijvoorbeeld naar Michael Gregoritsch van FC Augsburg. Op het moment van schrijven (speeldag 21) heeft hij vijf doelpunten gemaakt in het seizoen 21/22, niet iets waardoor iemand hem zou noemen in een gesprek over de geweldige doelpuntenmakers. Maar laten we het van dichterbij bekijken: als je de verwachte doelpunten (xGoals) van alle scoringskansen die Gregoritsch dit seizoen had, bij elkaar optelt, krijg je 1.7. Dit betekent dat hij +194% overtrof bij zijn schoten op doel en 3.2 doelpunten meer scoorde dan verwacht. Ter vergelijking: Lewandowski overtrof het met slechts 1.6 doelpunten (+7%). Wat een prestatie! Het is duidelijk dat Gregoritsch een speciale vaardigheid naar Augsburg brengt.

Dus hoe werpen we licht op alle verborgen verhalen over individuele Bundesliga-spelers, hun vaardigheden en impact op wedstrijdresultaten? Doe mee aan de nieuwe Bundesliga Match Fact powered by AWS genaamd Skill. Skill is ontwikkeld door middel van diepgaande analyse door de DFL en AWS om spelers te identificeren met vaardigheden in vier specifieke categorieën: initiator, finisher, balwinnaar en sprinter. Dit bericht biedt een diepe duik in deze vier vaardigheden en bespreekt hoe ze worden geïmplementeerd op de AWS-infrastructuur.

Een ander interessant punt is dat Bundesliga Match Facts tot nu toe onafhankelijk van elkaar zijn ontwikkeld. Skill is het eerste Bundesliga Match Fact dat de output van meerdere Bundesliga Match Facts in realtime combineert met behulp van een streamingarchitectuur die is gebaseerd op Amazon beheerde streaming Kafka (Amazon MSK).

initiatiefnemer

Een initiator is een speler die een groot aantal waardevolle eerste en tweede assists uitvoert. Om de waarde van die assists te identificeren en te kwantificeren, hebben we de nieuwe metriek xAssist geïntroduceerd. Het wordt berekend door de laatste en voorlaatste pass voor een schot op doel te volgen en de respectieve xGoals-waarde toe te wijzen aan die acties. Een goede initiator creëert kansen onder uitdagende omstandigheden door het succesvol afronden van passen met een hoge moeilijkheidsgraad. Om te evalueren hoe moeilijk het is om een ​​bepaalde pas te voltooien, gebruiken we onze bestaande xPass model. In deze statistiek sluiten we met opzet voorzetten en vrije trappen uit om ons te concentreren op spelers die scoringskansen genereren met hun precieze assists uit open spel.

De vaardigheidsscore wordt berekend met de volgende formule:

Laten we als voorbeeld eens kijken naar de huidige Rank 1-initiator, Thomas Müller. Hij heeft op het moment van schrijven (speeldag 9.23) een xAssist-waarde van 21 verzameld, wat betekent dat zijn passes voor de volgende spelers die op doel schoten een totale xGoal-waarde van 9.23 hebben opgeleverd. De verhouding xAssist per 90 minuten is 0.46. Dit kan worden berekend op basis van zijn totale speeltijd van het huidige seizoen, wat opmerkelijk is - meer dan 1,804 minuten speeltijd. Als tweede assist genereerde hij een totale waarde van 3.80, wat zich vertaalt in 0.19 seconden assists per 90 minuten. In totaal waren 38 van zijn 58 eerste assists moeilijke passes. En als tweede assist waren 11 van zijn 28 passes ook moeilijke passes. Met deze statistieken heeft Thomas Müller zichzelf naar de eerste plaats op de ranglijst van initiatiefnemers gekatapulteerd. Ter vergelijking, de volgende tabel geeft de waarden van de huidige top drie weer.

.. xAssistent xAssistent90 xTweedeAssist xTweedeAssistent90 MoeilijkPassenAssisted MoeilijkPassenAssisted2 Eindscore
Thomas Müller – Positie 1 9.23 0.46 3.80 0.18 38 11 0.948
Serge Gnabry – Rang 2 3.94 0.25 2.54 0.16 15 11 0.516
Florian Wirtz – Rang 3 6.41 0.37 2.45 0.14 21 1 0.510

afwerker

Een finisher is een speler die uitzonderlijk goed is in het maken van doelpunten. Hij heeft een hoge schotefficiëntie en bereikt veel doelen, afhankelijk van zijn speeltijd. De vaardigheid is gebaseerd op werkelijk gescoorde doelpunten en het verschil met verwachte doelpunten (xGoals). Zo kunnen we beoordelen of kansen goed worden benut. Laten we aannemen dat twee spitsen hetzelfde aantal doelpunten hebben. Zijn ze even sterk? Of scoort de een vanuit makkelijke omstandigheden terwijl de ander eindigt in uitdagende situaties? Met schotefficiëntie kan dit worden beantwoord: als de gescoorde doelpunten het aantal xGoals overschrijden, presteert een speler te veel en is hij een efficiëntere schutter dan gemiddeld. Door de omvang van dit verschil kunnen we kwantificeren in hoeverre de efficiëntie van een schutter het gemiddelde overtreft.

De vaardigheidsscore wordt berekend met de volgende formule:

Voor de afmaker richten we ons meer op doelpunten. De volgende tabel geeft een nadere blik op de huidige top drie.

.. Doelen DoelpuntenPer90 Schotefficiëntie Eindscore
Robert Lewandowski – Positie 1 24 1.14 1.55 0.813
Erling Haaland – Positie 2 16 1.18 5.32 0.811
Patrik Schick – Rang 3 18 1.10 4.27 0.802

Robert Lewandowski maakte dit seizoen 24 doelpunten, waarmee hij op de eerste plaats staat. Hoewel Haaland een hogere schotefficiëntie heeft, is het nog steeds niet genoeg voor Haaland om als eerste te worden gerangschikt, omdat we een hoger gewicht toekennen aan gescoorde doelpunten. Dit geeft aan dat Lewandowski veel profiteert van zowel de kwaliteit als de kwantiteit van de ontvangen assists, ook al scoort hij uitzonderlijk goed. Patrick Schick heeft twee doelpunten meer gemaakt dan Haaland, maar heeft een lager doel per 90 minuten en een lagere schotefficiëntie.

Sprinter

De sprinter heeft het fysieke vermogen om hoge topsnelheden te bereiken, en doet dat vaker dan anderen. Voor dit doel evalueren we de gemiddelde topsnelheden voor alle wedstrijden van het huidige seizoen van een speler en nemen we onder andere de frequentie van sprints per 90 minuten op. Een sprint wordt geteld als een speler langer dan twee seconden met een snelheid van minimaal 4.0 m/s loopt en gedurende deze tijd een pieksnelheid van ten minste 6.3 m/s bereikt. De duur van de sprint wordt gekenmerkt door de tijd tussen de eerste en de laatste keer dat de drempel van 6.3 m/s wordt bereikt, en moet minimaal 1 seconde lang zijn om te worden bevestigd. Een nieuwe sprint kan pas worden geacht te hebben plaatsgevonden nadat het tempo weer onder de drempel van 4.0 m/s is gezakt.

De vaardigheidsscore wordt berekend met de volgende formule:

De formule stelt ons in staat om de vele manieren waarop we naar sprints door spelers kunnen kijken te evalueren en verder te gaan dan alleen te kijken naar de topsnelheden die deze spelers produceren. Jeremiah St. Juste heeft bijvoorbeeld het huidige seizoensrecord van 36.65 km/u. Kijken we echter naar de frequentie van zijn sprints, dan zien we dat hij gemiddeld maar negen keer per wedstrijd sprint! Alphonso Davies daarentegen is misschien niet zo snel als St. Juste (topsnelheid 36.08 km/u), maar presteert maar liefst 31 sprints per wedstrijd! Hij sprint veel vaker met een veel hogere gemiddelde snelheid, waardoor er ruimte ontstaat voor zijn team op het veld.

Bal winnaar

Een speler met dit vermogen veroorzaakt balverliezen voor het andere team, zowel in totaal als in verhouding tot zijn speeltijd. Hij wint een groot aantal grond- en luchtduels en hij steelt of onderschept de bal vaak, waardoor hij zelf een veilige balcontrole creëert en zijn team de mogelijkheid biedt om in de tegenaanval te gaan.

De vaardigheidsscore wordt berekend met de volgende formule:

Op het moment van schrijven is Danilo Soares de winnaar van de eerste plaats. Hij heeft in totaal 235 verdedigende duels gespeeld. Van de 235 verdedigende duels won hij er 75, waarbij hij tegenstanders versloeg in een face-off. Hij heeft dit seizoen 51 ballen onderschept in zijn speelpositie als verdedigende verdediger, wat hem een ​​winstpercentage van ongeveer 32% opleverde. Gemiddeld onderschepte hij 2.4 ballen per 90 minuten.

Vaardigheidsvoorbeeld

Het Skill Bundesliga Match Fact stelt ons in staat om de capaciteiten en sterke punten van Bundesliga-spelers te onthullen. De Skill-ranglijst plaatst spelers in de schijnwerpers die voorheen misschien onopgemerkt waren gebleven in ranglijsten van conventionele statistieken zoals doelpunten. Neem bijvoorbeeld een speler als Michael Gregoritsch. Gregoritsch is een spits voor FC Augsburg die vanaf speeldag 21 zesde werd in de ranglijst van de finishers. Hij heeft tot nu toe vijf doelpunten gemaakt, waardoor hij niet bovenaan de ranglijst van doelpunten zou staan. Dit lukte hem echter in slechts 663 speelminuten! Een van die goals was de late gelijkmaker in de 97e minuut die Augsburg hielp om de uitnederlaag in Berlijn te vermijden.

Door het Skill Bundesliga Match Fact kunnen we ook verschillende kwaliteiten van elke speler herkennen. Een voorbeeld hiervan is de Dortmund-ster Erling Haaland, die ook het embleem van sprinter en finisher heeft verdiend en momenteel zesde staat tussen de sprinters van de Bundesliga.

Al deze statistieken zijn gebaseerd op bewegingsgegevens van spelers, doelgerelateerde gegevens, balactiegerelateerde gegevens en pass-gerelateerde gegevens. We verwerken deze informatie in datapipelines en halen daar per vaardigheid de benodigde relevante statistieken uit, zodat we realtime de ontwikkeling van alle metrics kunnen doorrekenen. Veel van de bovengenoemde statistieken zijn genormaliseerd door de tijd op het veld, waardoor rekening kan worden gehouden met spelers die weinig speeltijd hebben maar verbazingwekkend goed presteren als ze spelen. De combinaties en gewichten van de metrieken worden gecombineerd tot één score. Het resultaat is een rangschikking voor alle spelers op de vier spelersvaardigheden. Spelers in de top 10 ontvangen een vaardigheidsbadge om fans te helpen snel de uitzonderlijke kwaliteiten te identificeren die ze aan hun squadrons toevoegen.

Implementatie en architectuur

Bundesliga Match Facts die tot nu toe zijn ontwikkeld, zijn onafhankelijk van elkaar en zijn alleen afhankelijk van de opname van positie- en gebeurtenisgegevens, evenals hun eigen berekeningen. Dit verandert echter voor de nieuwe Bundesliga Match Fact Skill, die vaardigheidsranglijsten berekent op basis van gegevens die zijn geproduceerd door bestaande Match Facts, zoals xGoals of xPass. De uitkomst van één evenement, mogelijk een ongelooflijk doelpunt met lage kansen om erin te gaan, kan een aanzienlijke invloed hebben op de rangschikking van de vaardigheid van de finisher. Daarom hebben we een architectuur gebouwd die altijd de meest actuele vaardigheidsranglijsten biedt wanneer er een update is van de onderliggende gegevens. Om realtime updates van de vaardigheden te realiseren, gebruiken we Amazon MSK, een beheerde AWS-service voor Apache Kafka, als datastreaming- en messaging-oplossing. Op deze manier kunnen verschillende Bundesliga Match Facts de nieuwste evenementen en updates in realtime communiceren.

De onderliggende architectuur voor Skill bestaat uit vier hoofdonderdelen:

  • An Amazon Aurora Serverloze cluster slaat alle uitvoer van bestaande wedstrijdfeiten op. Dit omvat bijvoorbeeld gegevens voor elke pass (zoals xPass, speler, beoogde ontvanger) of schot (xGoal, speler, doelpunt) die heeft plaatsgevonden sinds de introductie van Bundesliga Match Facts.
  • Een centraal AWS Lambda functie schrijft de Bundesliga Match Fact-uitvoer naar de Aurora-database en meldt andere componenten dat er een update is geweest.
  • Een Lambda-functie voor elke individuele vaardigheid berekent de vaardigheidsrangschikking. Deze functies worden uitgevoerd wanneer er nieuwe gegevens beschikbaar zijn voor de berekening van de specifieke vaardigheid.
  • Een Amazon MSK Kafka-cluster dient als centraal communicatiepunt tussen al deze componenten.

Het volgende diagram illustreert deze workflow. Elk Bundesliga Match Fact stuurt onmiddellijk een evenementbericht naar Kafka wanneer er een update is voor een evenement (zoals een bijgewerkte xGoals-waarde voor een geschoten evenement). De centrale coördinator Lambda-functie wordt automatisch geactiveerd wanneer een Bundesliga Match Fact een dergelijk bericht verzendt en deze gegevens naar de database schrijft. Vervolgens stuurt het een ander bericht via Kafka met de nieuwe gegevens terug naar Kafka, dat dient als trigger voor de individuele vaardigheidsberekeningsfuncties. Deze functies gebruiken gegevens van deze triggergebeurtenis, evenals het onderliggende Aurora-cluster, om de nieuwste vaardigheidsranglijsten te berekenen en te publiceren. Raadpleeg de blogpost Set Piece Threat voor een meer diepgaande blik op het gebruik van Amazon MSK binnen dit project.

Samengevat

In dit bericht hebben we laten zien hoe de nieuwe Bundesliga Match Fact Skill het mogelijk maakt om Bundesliga-spelers objectief te vergelijken op vier kerndimensies, voortbouwend op en combinerend met voormalige onafhankelijke Bundesliga Match Facts in realtime. Dit stelt zowel commentatoren als fans in staat om voorheen onopgemerkte spelersvaardigheden te ontdekken en licht te werpen op de rollen die verschillende Bundesliga-spelers vervullen.

Het nieuwe Bundesliga Match Fact is het resultaat van een diepgaande analyse door de voetbalexperts van de Bundesliga en AWS-datawetenschappers om de kwaliteiten van voetballers te distilleren en te categoriseren op basis van objectieve prestatiegegevens. Spelersvaardigheidsbadges worden getoond in de opstelling en op spelerdetailpagina's in de Bundesliga-app. In de uitzending worden spelersvaardigheden aangeboden aan commentatoren via de gegevensverhaalzoeker en visueel getoond aan fans bij spelerswissels en wanneer een speler naar de respectieve top 10-ranglijst gaat.

We hopen dat je geniet van dit gloednieuwe Bundesliga Match Fact en dat het je nieuwe inzichten in het spel geeft. Ga voor meer informatie over de samenwerking tussen AWS en de Bundesliga naar Bundesliga op AWS!


Over de auteurs

Simon Rolfes speelde 288 Bundesliga-wedstrijden als centrale middenvelder, scoorde 41 doelpunten en won 26 interlands voor Duitsland. Momenteel is Rolfes Sporting Director bij Bayer 04 Leverkusen, waar hij toezicht houdt op en de ontwikkeling van de selectie van profspelers, de scoutingafdeling en de jeugdontwikkeling van de club. Simon schrijft ook wekelijkse columns op Bundesliga.com over de nieuwste Bundesliga Match Facts powered by AWS

Luuk Figdor is een Senior Sports Technology Specialist in het AWS Professional Services-team. Hij werkt samen met spelers, clubs, competities en mediabedrijven zoals de Bundesliga en de Formule 1 om hen te helpen verhalen te vertellen met data met behulp van machine learning. In zijn vrije tijd leert hij graag alles over de geest en het snijvlak tussen psychologie, economie en AI.

Pascal Kuhner is een Cloud Application Developer in het AWS Professional Services Team. Hij werkt samen met klanten in verschillende sectoren om hen te helpen hun bedrijfsresultaten te behalen via applicatieontwikkeling, DevOps en infrastructuur. Hij is zeer gepassioneerd door sport en speelt graag basketbal en voetbal in zijn vrije tijd.

Tarek Haschemi is adviseur binnen AWS Professional Services. Zijn vaardigheden en expertisegebieden omvatten applicatieontwikkeling, datawetenschap, machine learning en big data. Vanuit Hamburg ondersteunt hij klanten bij het ontwikkelen van datagedreven applicaties binnen de cloud. Voordat hij bij AWS kwam, was hij ook consultant in verschillende sectoren, zoals de luchtvaart en telecommunicatie. Hij is gepassioneerd om klanten te helpen bij hun data/AI-reis naar de cloud.

Jakub Michalczyk is een datawetenschapper bij Sportec Solutions AG. Een aantal jaren geleden verkoos hij een wiskundestudie boven voetballen, toen hij tot de conclusie kwam dat hij in dat laatste niet goed genoeg was. Nu combineert hij beide passies in zijn professionele carrière door machine learning methoden toe te passen om een ​​beter inzicht te krijgen in dit prachtige spel. In zijn vrije tijd speelt hij nog steeds graag zeven tegen zeven, kijkt hij naar misdaadfilms en luistert hij naar filmmuziek.

Javier Poveda-Panter is een Data Scientist voor EMEA-sportklanten binnen het AWS Professional Services-team. Hij stelt klanten op het gebied van kijksporten in staat om te innoveren en te profiteren van hun data, door hoogwaardige gebruikers- en fanervaringen te leveren door middel van machine learning en datawetenschap. In zijn vrije tijd volgt hij zijn passie voor een breed scala aan sport, muziek en AI.

Tijdstempel:

Meer van AWS-machine learning