Bundesliga-kampfaktaferdighet: Kvantifisere fotballspillerkvaliteter ved hjelp av maskinlæring på AWS

Kilde node: 1195672

I fotball, som i mange idretter, har diskusjoner om individuelle spillere alltid vært en del av moroa. "Hvem er den beste scoreren?" eller "Hvem er kongen av forsvarere?" er spørsmål som debatteres evig av fans, og sosiale medier forsterker denne debatten. Bare tenk på at Erling Haaland, Robert Lewandowski og Thomas Müller alene har til sammen 50 millioner følgere på Instagram. Mange fans er klar over den utrolige statistikken stjernespillere som Lewandowski og Haaland lager, men historier som dette er bare toppen av isfjellet.

Tenk på at nesten 600 spillere er under kontrakt i Bundesliga, og hvert lag har sine egne mestere – spillere som blir introdusert for å ta med en spesifikk ferdighet 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 sesongen 21/22, ikke noe som ville fått noen til å nevne ham i en samtale om de store målscorerne. Men la oss se nærmere: Hvis du akkumulerer de forventede målverdiene (xGoals) av alle scoringssjansene Gregoritsch hadde denne sesongen, er tallet 1.7. Dette betyr at han overpresterte på sine skudd på mål med +194 %, og scoret 3.2 flere mål enn forventet. Til sammenligning overpresterte Lewandowski med bare 1.6 mål (+7%). For en bragd! Klart Gregoritsch bringer en spesiell ferdighet til Augsburg.

Så hvordan kaster vi lys over alle de skjulte historiene om individuelle Bundesliga-spillere, deres ferdigheter og innvirkning på kampresultater? Gå inn i det nye Bundesliga Match Fact drevet av AWS kalt Skill. Ferdigheter er utviklet gjennom dybdeanalyse av DFL og AWS for å identifisere spillere med ferdigheter i fire spesifikke kategorier: initiativtaker, avslutter, ballvinner og sprinter. Dette innlegget gir et dypdykk i disse fire ferdighetene og diskuterer hvordan de implementeres på AWS-infrastruktur.

Et annet interessant poeng er at til nå har Bundesliga Match Facts blitt utviklet uavhengig av hverandre. Skill er det første Bundesliga Match Fact som kombinerer resultatet av flere Bundesliga Match Facts i sanntid ved hjelp av en strømmearkitektur bygget på Amazon administrerte streaming Kafka (Amazon MSK).

Initiativtaker

En initiativtaker er en spiller som utfører et høyt antall verdifulle første- og andre assists. For å identifisere og kvantifisere verdien av disse assistene, introduserte vi den nye metrikken xAssist. Den beregnes ved å spore siste og nest siste pasning før et skudd mot mål, og tilordne den respektive xGoals-verdien til disse handlingene. En god initiativtaker skaper muligheter under utfordrende omstendigheter ved å fullføre pasninger med høy vanskelighetsgrad. For å vurdere hvor vanskelig det er å fullføre et gitt pass, bruker vi vår eksisterende xPass modell. I denne beregningen utelukker vi med vilje kryss og frispark for å fokusere på spillere som genererer scoringssjanser med sine presise assists fra åpent spill.

Ferdighetspoengsummen beregnes med følgende formel:

La oss se på den nåværende rang 1-initiatoren, Thomas Müller, som et eksempel. Han har samlet en xAssist-verdi på 9.23 når dette skrives (kampdag 21), noe som betyr at pasningene hans for de neste spillerne som skjøt på målet har generert en total xGoal-verdi på 9.23. Forholdet xAssist per 90 minutter er 0.46. Dette kan beregnes ut fra hans totale spilletid for inneværende sesong, noe som er bemerkelsesverdig – over 1,804 minutters spilletid. Som en andre assist genererte han en totalverdi på 3.80, som tilsvarer 0.19 sekunders assists per 90 minutter. Totalt var 38 av hans 58 første assists vanskelige pasninger. Og som andre assist var 11 av hans 28 pasninger også vanskelige pasninger. Med denne statistikken har Thomas Müller kastet seg inn på førsteplass i initiativtakerrangeringen. Til sammenligning presenterer følgende tabell verdiene for gjeldende topp tre.

.. xAssist xAssister90 xSecondAssist xSecondAssistper90 DifficultPassesAssisted DifficultPassesAssisted2 Sluttsum
Thomas Müller – rangering 1 9.23 0.46 3.80 0.18 38 11 0.948
Serge Gnabry – rangering 2 3.94 0.25 2.54 0.16 15 11 0.516
Florian Wirtz – rangering 3 6.41 0.37 2.45 0.14 21 1 0.510

behandler

En avslutter er en spiller som er usedvanlig god til å score mål. Han har en høy skuddeffektivitet og oppnår mange mål i forhold til spilletid. Ferdigheten er basert på faktisk scorede mål og forskjellen til forventede mål (xGoals). Dette lar oss vurdere om sjansene blir godt utnyttet. La oss anta at to spisser har like mange mål. Er de like sterke? Eller scorer en av dem fra enkle omstendigheter mens den andre avslutter i utfordrende situasjoner? Med skuddeffektivitet kan dette svares: Hvis målene som scores overstiger antall xGoals, overpresterer en spiller og er en mer effektiv skytespiller enn gjennomsnittet. Gjennom størrelsen på denne forskjellen kan vi kvantifisere i hvilken grad en skytters effektivitet slår gjennomsnittet.

Ferdighetspoengsummen beregnes med følgende formel:

For avslutteren fokuserer vi mer på mål. Tabellen nedenfor gir en nærmere titt på gjeldende topp tre.

.. Mål MålPer90 ShotEfficiency Sluttsum
Robert Lewandowski – rangering 1 24 1.14 1.55 0.813
Erling Haaland – Rang 2 16 1.18 5.32 0.811
Patrik Schick – rangering 3 18 1.10 4.27 0.802

Robert Lewandowski har scoret 24 mål denne sesongen, noe som setter ham på førsteplass. Selv om Haaland har en høyere skuddeffektivitet, er det fortsatt ikke nok for Haaland å bli rangert først, fordi vi vekter høyere mål. Dette indikerer at Lewandowski tjener godt på både kvaliteten og kvantiteten på mottatte assister, selv om han scorer eksepsjonelt bra. Patrick Schick har scoret to flere mål enn Haaland, men har et lavere mål per 90 minutters takt og en lavere skuddeffektivitet.

Sprinter

Sprinteren har den fysiske evnen til å nå høye topphastigheter, og gjør det oftere enn andre. For dette formålet evaluerer vi gjennomsnittlig topphastighet på tvers av alle spill i en spillers nåværende sesong og inkluderer blant annet frekvensen av spurter per 90 minutter. En sprint telles hvis en spiller løper med et minimumstempo på 4.0 m/s i mer enn to sekunder, og når en topphastighet på minst 6.3 m/s i løpet av denne tiden. Sprintens varighet er preget av tiden mellom første og siste gang terskelen på 6.3 m/s nås, og må være minst 1 sekund lang for å bli kvittert. En ny sprint kan først anses å ha oppstått etter at tempoet igjen har falt under 4.0 m/s-terskelen.

Ferdighetspoengsummen beregnes med følgende formel:

Formelen lar oss evaluere de mange måtene vi kan se på sprints av spillere, og gå lenger enn bare å se på topphastighetene disse spillerne produserer. For eksempel har Jeremiah St. Juste den nåværende sesongrekorden på 36.65 km/t. Men hvis vi ser på frekvensen av spurtene hans, finner vi at han bare spurter ni ganger i gjennomsnitt per kamp! Alphonso Davies på sin side er kanskje ikke like rask som St. Juste (topphastighet 36.08 km/t), men utfører svimlende 31 spurter per kamp! Han spurter mye oftere med mye høyere gjennomsnittsfart, noe som åpner opp plass for laget sitt på banen.

Ballvinner

En spiller med denne evnen forårsaker balltap for motstanderlaget, både totalt og i forhold til spilletid. Han vinner et stort antall bakke- og luftdueller, og han stjeler eller avskjærer ballen ofte, og skaper en trygg ballkontroll selv, og en mulighet for laget hans til å angripe.

Ferdighetspoengsummen beregnes med følgende formel:

Når dette skrives, er den første ballvinneren Danilo Soares. Han har totalt 235 defensive dueller. Av de 235 defensive duellene har han vunnet 75, og beseiret motstandere i en face-off. Han har snappet opp 51 baller denne sesongen i sin spilleposisjon som defensiv back, noe som gir ham en seierrate på rundt 32 %. I gjennomsnitt snappet han 2.4 baller per 90 minutter.

Eksempel på ferdigheter

The Skill Bundesliga Match Fact gjør oss i stand til å avsløre evner og styrker til Bundesliga-spillere. Ferdighetsrankingen setter spillere i søkelyset som kanskje har gått ubemerket hen før i rangeringer av konvensjonell statistikk som mål. Ta for eksempel en spiller som Michael Gregoritsch. Gregoritsch er en spiss for FC Augsburg som plasserte seg på sjette plass i sluttrangeringen fra og med kampdag 21. Han har scoret fem mål så langt, noe som ikke ville plassert ham på toppen av noen målscoringsrangering. Dette klarte han imidlertid på kun 663 spilte minutter! Et av disse målene var den sene utligningen i det 97. minutt som hjalp Augsburg til å unngå bortetapet i Berlin.

Gjennom Skill Bundesliga Match Fact kan vi også gjenkjenne ulike kvaliteter til hver spiller. Et eksempel på dette er Dortmund-stjernen Erling Haaland, som også har fått merket som sprinter og fullfører, og er for tiden plassert på sjetteplass blant Bundesliga-sprinterne.

Alle disse beregningene er basert på spillerbevegelsesdata, målrelaterte data, ballhandlingsrelaterte data og pasningsrelaterte data. Vi behandler denne informasjonen i datapipelines og trekker ut nødvendig relevant statistikk per ferdighet, slik at vi kan beregne utviklingen av alle beregninger i sanntid. Mange av de nevnte statistikkene er normalisert etter tid på banen, noe som gjør det mulig å ta hensyn til spillere som har lite spilletid, men som presterer utrolig bra når de spiller. Kombinasjonene og vektene til beregningene er kombinert til en enkelt poengsum. Resultatet er en rangering for alle spillere på de fire spillerferdighetene. Spillere som rangeres blant de 10 beste mottar et ferdighetsmerke for å hjelpe fansen raskt å identifisere de eksepsjonelle egenskapene de tilfører troppene sine.

Implementering og arkitektur

Bundesliga-kampfakta som har blitt utviklet frem til dette punktet er uavhengige av hverandre og er kun avhengige av inntak av posisjons- og hendelsesdata, så vel som deres egne beregninger. Dette endres imidlertid for den nye Bundesliga Match Fact Skill, som beregner ferdighetsrangeringer basert på data produsert av eksisterende kampfakta, som for eksempel xGoals eller xPass. Utfallet av én begivenhet, muligens et utrolig mål med lave sjanser for å gå inn, kan ha en betydelig innvirkning på ferdighetsrangeringen til ferdigbehandlet. Derfor bygde vi en arkitektur som alltid gir de mest oppdaterte ferdighetsrangeringene når det er en oppdatering av de underliggende dataene. For å oppnå sanntidsoppdateringer av ferdighetene bruker vi Amazon MSK, en administrert AWS-tjeneste for Apache Kafka, som en datastrømming og meldingsløsning. På denne måten kan forskjellige Bundesliga-kampfakta kommunisere de siste hendelsene og oppdateringene i sanntid.

Den underliggende arkitekturen for Skill består av fire hoveddeler:

  • An Amazon Aurora serverløs klynge lagrer alle utdata av eksisterende kampfakta. Dette inkluderer for eksempel data for hver pasning (som xPass, spiller, tiltenkt mottaker) eller skudd (xGoal, player, goal) som har skjedd siden introduksjonen av Bundesliga Match Facts.
  • En sentral AWS Lambda function skriver Bundesliga Match Fact-utdata til Aurora-databasen og varsler andre komponenter om at det har vært en oppdatering.
  • En Lambda-funksjon for hver enkelt ferdighet beregner ferdighetsrangeringen. Disse funksjonene kjøres når nye data er tilgjengelige for beregning av den spesifikke ferdigheten.
  • En Amazon MSK Kafka-klynge fungerer som et sentralt kommunikasjonspunkt mellom alle disse komponentene.

Følgende diagram illustrerer denne arbeidsflyten. Hver Bundesliga-kampfakta sender umiddelbart en hendelsesmelding til Kafka hver gang det er en oppdatering til en begivenhet (for eksempel en oppdatert xGoals-verdi for en skuddhendelse). Den sentrale dispatcher Lambda-funksjonen utløses automatisk når en Bundesliga Match Fact sender en slik melding og skriver disse dataene til databasen. Deretter sender den en ny melding via Kafka som inneholder de nye dataene tilbake til Kafka, som fungerer som en trigger for de individuelle ferdighetsberegningsfunksjonene. Disse funksjonene bruker data fra denne triggerhendelsen, så vel som den underliggende Aurora-klyngen, for å beregne og publisere de nyeste ferdighetsrangeringene. For en mer dyptgående titt på bruken av Amazon MSK i dette prosjektet, se blogginnlegget Set Piece Threat.

Oppsummering

I dette innlegget demonstrerte vi hvordan den nye Bundesliga Match Fact Skill gjør det mulig å objektivt sammenligne Bundesliga-spillere på fire kjernespillerdimensjoner, ved å bygge på og kombinere tidligere uavhengige Bundesliga Match Facts i sanntid. Dette lar både kommentatorer og fans avdekke tidligere upåaktete spillerevner og kaste lys over rollene som ulike Bundesliga-spillere fyller.

Det nye Bundesliga Match Fact er resultatet av en dybdeanalyse utført av Bundesligas fotballeksperter og AWS-dataforskere for å destillere og kategorisere fotballspillerkvaliteter basert på objektive prestasjonsdata. Spillerferdighetsmerker vises i oppstillingen og på spillerdetaljsidene i Bundesliga-appen. I sendingen gis spillerferdigheter til kommentatorer gjennom datahistoriefinner og visuelt vist til fansen ved spillerbytte og når en spiller rykker opp til den respektive topp 10-rangeringen.

Vi håper at du liker dette splitter nye Bundesliga Match Fact og at det gir deg ny innsikt i spillet. For å lære mer om partnerskapet mellom AWS og Bundesliga, besøk Bundesliga på AWS!


Om forfatterne

simon rolfes spilte 288 Bundesliga-kamper som sentral midtbanespiller, scoret 41 mål og vant 26 landskamper for Tyskland. For tiden fungerer Rolfes som sportsdirektør i Bayer 04 Leverkusen, hvor han overvåker og utvikler pro-spillerlisten, speideravdelingen og klubbens ungdomsutvikling. Simon skriver også ukentlige spalter på Bundesliga.com om de siste Bundesliga-kampfakta drevet av AWS

Luuk Figdor er senior sportsteknologispesialist i AWS Professional Services-teamet. Han jobber med spillere, klubber, ligaer og medieselskaper som Bundesliga og Formel 1 for å hjelpe dem å fortelle historier med data ved hjelp av maskinlæring. På fritiden liker han å lære alt om sinnet og skjæringspunktet mellom psykologi, økonomi og AI.

Pascal Kühner er en skyapplikasjonsutvikler i AWS Professional Services Team. Han jobber med kunder på tvers av bransjer for å hjelpe dem med å oppnå sine forretningsresultater via applikasjonsutvikling, DevOps og infrastruktur. Han er veldig lidenskapelig opptatt av sport og liker å spille basketball og fotball på fritiden.

Tareq Haschemi er konsulent innen AWS Professional Services. Hans ferdigheter og ekspertiseområder inkluderer applikasjonsutvikling, datavitenskap, maskinlæring og big data. Basert i Hamburg, støtter han kunder med å utvikle datadrevne applikasjoner innenfor skyen. Før han begynte i AWS var han også konsulent i ulike bransjer som luftfart og telekommunikasjon. Han brenner for å muliggjøre kunder på deres data/AI-reise til skyen.

Jakub Michalczyk er dataforsker ved Sportec Solutions AG. For flere år siden valgte han mattestudier fremfor å spille fotball, ettersom han kom frem til at han ikke var god nok på det siste. Nå kombinerer han begge disse lidenskapene i sin profesjonelle karriere ved å bruke maskinlæringsmetoder for å få et bedre innblikk i dette vakre spillet. På fritiden liker han fortsatt å spille syvmannsfotball, se krimfilmer og høre på filmmusikk.

Javier Poveda-Panter er en Data Scientist for EMEA sportskunder innenfor AWS Professional Services-teamet. Han gjør det mulig for kunder innen tilskuersport å innovere og utnytte dataene sine, og levere høykvalitets bruker- og fanopplevelser gjennom maskinlæring og datavitenskap. Han følger lidenskapen sin for et bredt spekter av sport, musikk og kunstig intelligens på fritiden.

Tidstempel:

Mer fra AWS maskinlæring