Bundesliga Match Fact Skills: Kvantificering af fodboldspillers kvaliteter ved hjælp af machine learning på AWS

Kildeknude: 1195672

I fodbold, som i mange sportsgrene, har diskussioner om individuelle spillere altid været en del af det sjove. "Hvem er den bedste scorer?" eller "Hvem er forsvarernes konge?" er spørgsmål, der konstant diskuteres af fans, og sociale medier forstærker denne debat. Tænk bare på, at Erling Haaland, Robert Lewandowski og Thomas Müller alene har tilsammen 50 millioner følgere på Instagram. Mange fans er opmærksomme på den utrolige statistik, stjernespillere som Lewandowski og Haaland skaber, men historier som denne er kun toppen af ​​isbjerget.

Tænk på, at næsten 600 spillere er under kontrakt i Bundesligaen, og hvert hold har deres egne mestre - spillere, der bliver introduceret for at bringe en specifik færdighed i spil i en kamp. Se for eksempel på Michael Gregoritsch fra FC Augsburg. Når dette skrives (21. kampdag), har han scoret fem mål i sæsonen 21/22, ikke noget der ville få nogen til at nævne ham i en samtale om de store målscorere. Men lad os se nærmere: Hvis du akkumulerer de forventede målværdier (xGoals) af alle scoringschancer, som Gregoritsch havde i denne sæson, er tallet 1.7. Det betyder, at han overpræsterede på sine skud på mål med +194 % og scorede 3.2 flere mål end forventet. Til sammenligning overpræsterede Lewandowski med kun 1.6 mål (+7%). Hvilken bedrift! Det er klart, at Gregoritsch bringer en særlig færdighed til Augsburg.

Så hvordan kaster vi lys over alle de skjulte historier om individuelle Bundesliga-spillere, deres evner og indflydelse på kampens resultater? Indtast den nye Bundesliga Match Fact drevet af AWS kaldet Skill. Skill er blevet udviklet gennem dybdegående analyse af DFL og AWS for at identificere spillere med færdigheder i fire specifikke kategorier: initiativtager, afslutter, boldvinder og sprinter. Dette indlæg giver et dybt dyk ned i disse fire færdigheder og diskuterer, hvordan de implementeres på AWS-infrastruktur.

En anden interessant pointe er, at indtil nu er Bundesliga Match Facts blevet udviklet uafhængigt af hinanden. Skill er den første Bundesliga Match Fact, der kombinerer output fra flere Bundesliga Match Facts i realtid ved hjælp af en streaming-arkitektur bygget på Amazon administrerede streaming af Kafka (Amazon MSK).

initiativtager

En igangsætter er en spiller, der udfører et højt antal værdifulde første og anden assists. For at identificere og kvantificere værdien af ​​disse assists introducerede vi den nye metriske xAssist. Det beregnes ved at spore den sidste og næstsidste pasning før et skud mod mål og tildele den respektive xGoals-værdi til disse handlinger. En god igangsætter skaber muligheder under udfordrende omstændigheder ved at gennemføre afleveringer med en hastighed af høj sværhedsgrad. For at vurdere, hvor svært det er at gennemføre en given beståelse, bruger vi vores eksisterende xPass model. I denne måling ekskluderer vi bevidst kryds og frispark for at fokusere på spillere, der genererer scoringschancer med deres præcise assists fra åbent spil.

Færdighedsscore beregnes med følgende formel:

Lad os se på den nuværende rang 1 initiativtager, Thomas Müller, som et eksempel. Han har indsamlet en xAssist-værdi på 9.23, da dette skrives (kampdag 21), hvilket betyder, at hans afleveringer til de næste spillere, der skød på målet, har genereret en samlet xGoal-værdi på 9.23. Forholdet xAssist pr. 90 minutter er 0.46. Dette kan beregnes ud fra hans samlede spilletid i den aktuelle sæson, hvilket er bemærkelsesværdigt - over 1,804 minutters spilletid. Som en anden assist genererede han en samlet værdi på 3.80, hvilket svarer til 0.19 sekunders assists pr. 90 minutter. I alt var 38 af hans 58 første assists svære afleveringer. Og som en anden assist var 11 af hans 28 afleveringer også svære afleveringer. Med denne statistik har Thomas Müller kastet sig ind på førstepladsen i initiativtagerranglisten. Til sammenligning præsenterer følgende tabel værdierne for den aktuelle top tre.

.. xAssist xAssister90 xSecondAssist xSecondAssistper90 DifficultPassesAssisted DifficultPassesAssisted2 Endelig score
Thomas Müller – 1. plads 9.23 0.46 3.80 0.18 38 11 0.948
Serge Gnabry – 2. plads 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

Finisher

En afslutter er en spiller, der er usædvanlig god til at score mål. Han har en høj skudeffektivitet og opnår mange mål i forhold til hans spilletid. Færdigheden er baseret på faktisk scorede mål og dens forskel til forventede mål (xGoals). Dette giver os mulighed for at vurdere, om chancerne bliver godt udnyttet. Lad os antage, at to angribere har det samme antal mål. Er de lige stærke? Eller scorer en af ​​dem fra lette omstændigheder, mens den anden slutter i udfordrende situationer? Med skudeffektivitet kan dette besvares: Hvis de scorede mål overstiger antallet af xGoals, overpræsterer en spiller og er en mere effektiv skydespiller end gennemsnittet. Gennem størrelsen af ​​denne forskel kan vi kvantificere, i hvilket omfang en skyttes effektivitet slår gennemsnittet.

Færdighedsscore beregnes med følgende formel:

For afslutteren fokuserer vi mere på mål. Følgende tabel giver et nærmere kig på den aktuelle top tre.

.. Mål MålPer90 ShotEfficiency Endelig score
Robert Lewandowski – rang 1 24 1.14 1.55 0.813
Erling Haaland – 2. plads 16 1.18 5.32 0.811
Patrik Schick – 3. pladsen 18 1.10 4.27 0.802

Robert Lewandowski har scoret 24 mål i denne sæson, hvilket placerer ham på førstepladsen. Selvom Haaland har en højere skudeffektivitet, er det stadig ikke nok for Haaland at være først placeret, fordi vi vægter scorede mål højere. Dette indikerer, at Lewandowski profiterer meget på både kvaliteten og kvantiteten af ​​de modtagne assists, selvom han scorer usædvanligt godt. Patrick Schick har scoret to mål mere end Haaland, men har et lavere mål pr. 90 minutter og en lavere skudeffektivitet.

Sprinter

Sprinteren har den fysiske evne til at nå høje tophastigheder, og gør det oftere end andre. Til dette formål evaluerer vi gennemsnitlige tophastigheder på tværs af alle spil i en spillers nuværende sæson og inkluderer blandt andet frekvensen af ​​sprints pr. 90 minutter. En sprint tælles, hvis en spiller løber med et minimumtempo på 4.0 m/s i mere end to sekunder, og når en tophastighed på mindst 6.3 m/s i løbet af denne tid. Sprintens varighed er karakteriseret ved tiden mellem første og sidste gang, tærsklen på 6.3 m/s nås, og skal være mindst 1 sekund lang for at blive kvitteret. En ny sprint kan først anses for opstået, efter at tempoet igen var faldet under 4.0 m/s-grænsen.

Færdighedsscore beregnes med følgende formel:

Formlen giver os mulighed for at evaluere de mange måder, vi kan se på sprints af spillere, og gå længere end blot at se på de tophastigheder, som disse spillere producerer. For eksempel har Jeremiah St. Juste den nuværende sæsonrekord på 36.65 km/t. Men hvis vi ser på frekvensen af ​​hans spurter, finder vi, at han kun spurter ni gange i gennemsnit pr. kamp! Alphonso Davies på den anden side er måske ikke så hurtig som St. Juste (tophastighed 36.08 km/t), men udfører svimlende 31 spurter pr. kamp! Han spurter meget hyppigere med en meget højere gennemsnitshastighed, hvilket åbner plads til sit hold på banen.

Boldvinder

En spiller med denne evne forårsager boldtab til modstanderholdet, både totalt og i forhold til hans spilletid. Han vinder et stort antal jord- og luftdueller, og han stjæler eller opsnapper bolden ofte, hvilket skaber en sikker boldkontrol selv og en mulighed for hans hold til at kontraangreb.

Færdighedsscore beregnes med følgende formel:

Når dette skrives, er den første boldvinder Danilo Soares. Han har i alt 235 defensive dueller. Af de 235 defensive dueller har han vundet 75 og besejret modstandere i en face-off. Han har opsnappet 51 bolde i denne sæson i sin spilleposition som defensiv back, hvilket giver ham en sejrsrate på omkring 32%. I gennemsnit opsnappede han 2.4 bolde pr. 90 minutter.

Eksempel på færdighed

Skill Bundesliga Match Fact gør det muligt for os at løfte sløret for evner og styrker hos Bundesliga-spillere. Færdighedsranglisten sætter spillere i søgelyset, som måske er gået ubemærket hen før i rækker af konventionelle statistikker som mål. Tag for eksempel en spiller som Michael Gregoritsch. Gregoritsch er en angriber for FC Augsburg, som placerede sig på sjettepladsen i finisher-ranglisten fra og med kampdag 21. Han har scoret fem mål indtil videre, hvilket ikke ville placere ham i toppen af ​​nogen målscoringsrangering. Han formåede dog at gøre dette på kun 663 minutter spillet! Et af disse mål var den sene udligning i det 97. minut, der hjalp Augsburg til at undgå udebanetabet i Berlin.

Gennem Skill Bundesliga Match Fact kan vi også genkende forskellige kvaliteter hos hver spiller. Et eksempel på dette er Dortmund-stjernen Erling Haaland, som også har fået emblemet som sprinter og afslutter, og i øjeblikket er placeret på sjettepladsen blandt Bundesliga-sprinterne.

Alle disse målinger er baseret på spillerbevægelsesdata, målrelaterede data, boldhandlingsrelaterede data og afleveringsrelaterede data. Vi behandler disse oplysninger i datapipelines og udtrækker den nødvendige relevante statistik pr. færdighed, så vi kan beregne udviklingen af ​​alle metrics i realtid. Mange af de førnævnte statistikker er normaliseret efter tid på banen, hvilket giver mulighed for at tage hensyn til spillere, der har lidt spilletid, men som præsterer fantastisk godt, når de spiller. Kombinationerne og vægtene af metrikken kombineres til en enkelt score. Resultatet er en rangordning for alle spillere på de fire spillers færdigheder. Spillere, der rangerer i top 10, modtager et færdighedsmærke for at hjælpe fans med hurtigt at identificere de exceptionelle kvaliteter, de tilfører deres hold.

Implementering og arkitektur

Bundesliga-kampfakta, der er blevet udviklet indtil dette punkt, er uafhængige af hinanden og er kun afhængige af indtagelsen af ​​positions- og begivenhedsdata, såvel som deres egne beregninger. Dette ændrer sig dog for den nye Bundesliga Match Fact Skill, som beregner færdighedsrangeringer baseret på data produceret af eksisterende kampfakta, som for eksempel xGoals eller xPass. Resultatet af en begivenhed, muligvis et utroligt mål med lave chancer for at gå ind, kan have en betydelig indflydelse på færdighedsrangeringen af ​​afsluttere. Derfor har vi bygget en arkitektur, der altid giver de mest opdaterede færdighedsrangeringer, når der er en opdatering af de underliggende data. For at opnå realtidsopdateringer af færdighederne bruger vi Amazon MSK, en administreret AWS-tjeneste til Apache Kafka, som en datastreaming- og beskedløsning. På denne måde kan forskellige Bundesliga-kampfakta kommunikere de seneste begivenheder og opdateringer i realtid.

Den underliggende arkitektur for Skill består af fire hoveddele:

  • An Amazon Aurora serverløs klynge gemmer alle output af eksisterende matchfakta. Dette inkluderer for eksempel data for hver aflevering (såsom xPass, spiller, påtænkt modtager) eller skud (xGoal, player, goal), der er sket siden introduktionen af ​​Bundesliga Match Facts.
  • En central AWS Lambda funktion skriver Bundesliga Match Fact-output til Aurora-databasen og giver andre komponenter besked om, at der har været en opdatering.
  • En Lambda-funktion for hver enkelt færdighed beregner færdighedsrangeringen. Disse funktioner kører hver gang nye data er tilgængelige til beregning af den specifikke færdighed.
  • En Amazon MSK Kafka-klynge fungerer som et centralt kommunikationspunkt mellem alle disse komponenter.

Følgende diagram illustrerer denne arbejdsgang. Hver Bundesliga Match Fact sender straks en begivenhedsmeddelelse til Kafka, hver gang der er en opdatering til en begivenhed (såsom en opdateret xGoals-værdi for en skudbegivenhed). Den centrale dispatcher Lambda-funktion udløses automatisk, når en Bundesliga-kampfakta sender en sådan besked og skriver disse data til databasen. Derefter sender den endnu en besked via Kafka indeholdende de nye data tilbage til Kafka, som fungerer som en trigger for de individuelle færdighedsberegningsfunktioner. Disse funktioner bruger data fra denne triggerhændelse, såvel som den underliggende Aurora-klynge, til at beregne og offentliggøre de nyeste færdighedsrangeringer. For et mere dybtgående kig på brugen af ​​Amazon MSK i dette projekt, se Set Piece Threat-blogposten.

Resumé

I dette indlæg demonstrerede vi, hvordan den nye Bundesliga Match Fact Skill gør det muligt objektivt at sammenligne Bundesliga-spillere på fire kernespillerdimensioner ved at bygge på og kombinere tidligere uafhængige Bundesliga Match Facts i realtid. Dette giver både kommentatorer og fans mulighed for at afdække tidligere ubemærkede spillerevner og kaste lys over de roller, som forskellige Bundesliga-spillere udfylder.

Den nye Bundesliga Match Fact er resultatet af en dybdegående analyse foretaget af Bundesligaens fodboldeksperter og AWS-dataforskere for at destillere og kategorisere fodboldspillerkvaliteter baseret på objektive præstationsdata. Spillerevnemærker vises i rækken og på spillerdetaljesider i Bundesliga-appen. I udsendelsen gives spillerfærdigheder til kommentatorer gennem datahistoriefinder og visuelt vist til fans ved spillerudskiftning, og når en spiller rykker op i den respektive top 10-rangering.

Vi håber, at du nyder dette splinternye Bundesliga-kampfakta, og at det giver dig ny indsigt i spillet. For at lære mere om partnerskabet mellem AWS og Bundesligaen, besøg Bundesligaen på AWS!


Om forfatterne

simon rolfes spillet 288 Bundesliga-kampe som central midtbanespiller, scoret 41 mål og vundet 26 landskampe for Tyskland. I øjeblikket fungerer Rolfes som sportsdirektør hos Bayer 04 Leverkusen, hvor han overvåger og udvikler den professionelle spillerliste, scoutingafdelingen og klubbens ungdomsudvikling. Simon skriver også ugentlige klummer på Bundesliga.com om de seneste Bundesliga-kampfakta powered by AWS

Luuk Figdor er Senior Sports Technology Specialist i AWS Professional Services-teamet. Han arbejder med spillere, klubber, ligaer og medievirksomheder som Bundesligaen og Formel 1 for at hjælpe dem med at fortælle historier med data ved hjælp af maskinlæring. I sin fritid kan han lide at lære alt om sindet og krydsfeltet mellem psykologi, økonomi og AI.

Pascal Kühner er Cloud Application Developer i AWS Professional Services Team. Han arbejder med kunder på tværs af brancher for at hjælpe dem med at opnå deres forretningsresultater via applikationsudvikling, DevOps og infrastruktur. Han er meget passioneret omkring sport og nyder at spille basketball og fodbold i sin fritid.

Tareq Haschemi er konsulent indenfor AWS Professional Services. Hans færdigheder og ekspertiseområder omfatter applikationsudvikling, datavidenskab, machine learning og big data. Med base i Hamborg støtter han kunder i at udvikle datadrevne applikationer i skyen. Før han kom til AWS, var han også konsulent i forskellige brancher som luftfart og telekommunikation. Han brænder for at aktivere kunder på deres data/AI-rejse til skyen.

Jakub Michalczyk er dataforsker hos Sportec Solutions AG. For flere år siden valgte han matematikstudier frem for at spille fodbold, da han kom frem til, at det sidste var han ikke god nok til. Nu kombinerer han begge disse passioner i sin professionelle karriere ved at anvende maskinlæringsmetoder for at få et bedre indblik i dette smukke spil. I sin fritid nyder han stadig at spille syvmandsfodbold, se krimi og lytte til filmmusik.

Javier Poveda-Panter er Data Scientist for EMEA-sportskunder inden for AWS Professional Services-teamet. Han sætter kunder inden for tilskuersport i stand til at innovere og udnytte deres data og levere bruger- og fanoplevelser af høj kvalitet gennem maskinlæring og datavidenskab. Han følger sin passion for en bred vifte af sport, musik og kunstig intelligens i sin fritid.

Tidsstempel:

Mere fra AWS maskinindlæring