Bundesliga Match Fact Skill: quantificare le qualità dei giocatori di football utilizzando l'apprendimento automatico su AWS

Nodo di origine: 1195672

Nel calcio, come in molti sport, le discussioni sui singoli giocatori sono sempre state parte del divertimento. "Chi è il miglior marcatore?" o "Chi è il re dei difensori?" sono domande perennemente dibattute dai fan e i social media amplificano questo dibattito. Basta considerare che Erling Haaland, Robert Lewandowski e Thomas Müller da soli hanno un totale di 50 milioni di follower su Instagram. Molti fan sono consapevoli delle incredibili statistiche create da fuoriclasse come Lewandowski e Haaland, ma storie come questa sono solo la punta dell'iceberg.

Considera che quasi 600 giocatori sono sotto contratto in Bundesliga e ogni squadra ha i propri campioni, giocatori che vengono introdotti per portare un'abilità specifica da sopportare in una partita. Guarda ad esempio Michael Gregoritsch dell'FC Augsburg. Al momento della stesura di questo articolo (giornata 21), ha segnato cinque gol nella stagione 21/22, non qualcosa che lo farebbe menzionare in una conversazione sui grandi marcatori. Ma guardiamo più da vicino: se accumuli i valori di goal previsti (xGoals) di tutte le occasioni da rete che Gregoritsch ha avuto in questa stagione, la cifra che ottieni è 1.7. Ciò significa che ha sovraperformato i suoi tiri in porta del +194%, segnando 3.2 gol in più del previsto. In confronto, Lewandowski ha sovraperformato di soli 1.6 gol (+7%). Che impresa! Chiaramente Gregoritsch porta un'abilità speciale ad Augusta.

Quindi, come facciamo a far luce su tutte le storie nascoste sui singoli giocatori della Bundesliga, sulle loro abilità e sull'impatto sui risultati delle partite? Entra nel nuovo Bundesliga Match Fact powered by AWS chiamato Skill. L'abilità è stata sviluppata attraverso un'analisi approfondita da parte del DFL e dell'AWS per identificare i giocatori con abilità in quattro categorie specifiche: iniziatore, finitore, vincitore della palla e velocista. Questo post fornisce un'analisi approfondita di queste quattro competenze e illustra come vengono implementate nell'infrastruttura AWS.

Un altro punto interessante è che fino ad ora, Bundesliga Match Facts è stato sviluppato indipendentemente l'uno dall'altro. Skill è il primo Match Fact della Bundesliga che combina l'output di più Match Fact della Bundesliga in tempo reale utilizzando un'architettura di streaming basata su Kafka in streaming gestito da Amazon (AmazonMSK).

Iniziatore

Un iniziatore è un giocatore che esegue un numero elevato di preziosi primi e secondi assist. Per identificare e quantificare il valore di tali assist, abbiamo introdotto la nuova metrica xAssist. Viene calcolato tracciando l'ultimo e il penultimo passaggio prima di un tiro in porta e assegnando il rispettivo valore xGoals a tali azioni. Un buon iniziatore crea opportunità in circostanze difficili completando con successo passaggi con un tasso di difficoltà elevata. Per valutare quanto sia difficile completare un determinato passaggio, utilizziamo il nostro esistente xPass modello. In questa metrica, escludiamo di proposito cross e calci di punizione per concentrarci sui giocatori che generano occasioni da gol con i loro assist precisi da gioco aperto.

Il punteggio di abilità è calcolato con la seguente formula:

Diamo un'occhiata all'attuale iniziatore di Rank 1, Thomas Müller, come esempio. Ha raccolto un valore xAssist di 9.23 al momento della stesura di questo articolo (giornata 21), il che significa che i suoi passaggi per i successivi giocatori che hanno tirato in porta hanno generato un valore totale di xGoal di 9.23. Il rapporto xAssist per 90 minuti è 0.46. Questo può essere calcolato dal suo tempo di gioco totale della stagione in corso, che è notevole: oltre 1,804 minuti di tempo di gioco. Come secondo assist, ha generato un valore totale di 3.80, che si traduce in 0.19 secondi assist ogni 90 minuti. In totale, 38 dei suoi 58 primi assist sono stati passaggi difficili. E come secondo assist, anche 11 dei suoi 28 passaggi sono stati passaggi difficili. Con queste statistiche, Thomas Müller si è catapultato al primo posto nella classifica degli iniziatori. Per confronto, la tabella seguente presenta i valori degli attuali primi tre.

.. xAssistenza xAssistper90 xSecondo Assist xSecondAssistper90 Difficili Passesassistiti Difficili PassesAssisted2 Punteggio finale
Thomas Müller – Classifica 1 9.23 0.46 3.80 0.18 38 11 0.948
Serge Gnabry – Grado 2 3.94 0.25 2.54 0.16 15 11 0.516
Florian Wirtz – Grado 3 6.41 0.37 2.45 0.14 21 1 0.510

finitore

Un finisher è un giocatore che è eccezionalmente bravo a segnare gol. Ha un'elevata efficienza di tiro e realizza molti gol in relazione al suo tempo di gioco. L'abilità si basa sui goal reali segnati e sulla sua differenza rispetto ai goal previsti (xGoals). Questo ci permette di valutare se le possibilità vengono sfruttate bene. Supponiamo che due attaccanti abbiano lo stesso numero di gol. Sono ugualmente forti? O uno di loro segna in circostanze facili mentre l'altro finisce in situazioni difficili? Con l'efficienza del tiro, si può rispondere: se i goal segnati superano il numero di xGoal, un giocatore ha prestazioni eccessive ed è un tiratore più efficiente della media. Attraverso l'entità di questa differenza, possiamo quantificare la misura in cui l'efficienza di un tiratore supera la media.

Il punteggio di abilità è calcolato con la seguente formula:

Per il finisher, ci concentriamo maggiormente sugli obiettivi. La tabella seguente fornisce uno sguardo più da vicino agli attuali primi tre.

.. Obiettivi ObiettiviPer90 Tiro Efficienza Punteggio finale
Robert Lewandowski – Grado 1 24 1.14 1.55 0.813
Erling Haaland – Grado 2 16 1.18 5.32 0.811
Patrik Schick – Grado 3 18 1.10 4.27 0.802

Robert Lewandowski ha segnato 24 gol in questa stagione, il che lo mette al primo posto. Sebbene Haaland abbia una maggiore efficienza di tiro, non è ancora sufficiente per Haaland essere classificato primo, perché diamo un peso maggiore ai gol segnati. Ciò indica che Lewandowski trae grandi vantaggi sia dalla qualità che dalla quantità degli assist ricevuti, anche se segna eccezionalmente bene. Patrick Schick ha segnato due gol in più di Haaland, ma ha una frequenza di gol inferiore per 90 minuti e un'efficienza di tiro inferiore.

velocista

Il velocista ha la capacità fisica di raggiungere velocità massime elevate e lo fa più spesso di altri. A tal fine, valutiamo le velocità massime medie in tutte le partite della stagione in corso di un giocatore e includiamo la frequenza degli sprint ogni 90 minuti, tra le altre metriche. Uno sprint viene conteggiato se un giocatore corre a un ritmo minimo di 4.0 m/s per più di due secondi e raggiunge una velocità massima di almeno 6.3 m/s durante questo periodo. La durata dello sprint è caratterizzata dal tempo che intercorre tra la prima e l'ultima volta che viene raggiunta la soglia dei 6.3 m/s e deve essere lunga almeno 1 secondo per essere riconosciuta. Un nuovo sprint può essere considerato avvenuto solo dopo che il ritmo è sceso nuovamente al di sotto della soglia di 4.0 m/s.

Il punteggio di abilità è calcolato con la seguente formula:

La formula ci consente di valutare i molti modi in cui possiamo guardare agli sprint dei giocatori e andare oltre il semplice guardare le velocità massime prodotte da questi giocatori. Ad esempio, Jeremiah St. Juste ha il record della stagione attuale di 36.65 km/h. Tuttavia, se osserviamo la frequenza dei suoi sprint, scopriamo che in media effettua solo nove sprint a partita! Alphonso Davies d'altra parte potrebbe non essere veloce come St. Juste (velocità massima 36.08 km/h), ma esegue l'incredibile cifra di 31 sprint a partita! Scatta molto più frequentemente con una velocità media molto più elevata, aprendo spazio alla sua squadra in campo.

Vincitore della palla

Un giocatore con questa capacità provoca perdite di palla alla squadra avversaria, sia in totale che in relazione al suo tempo di gioco. Vince un gran numero di duelli a terra e aerei e ruba o intercetta spesso la palla, creando lui stesso un controllo sicuro della palla e una possibilità per la sua squadra di contrattaccare.

Il punteggio di abilità è calcolato con la seguente formula:

Al momento della stesura di questo articolo, il vincitore della palla al primo posto è Danilo Soares. Ha un totale di 235 duelli difensivi. Dei 235 duelli difensivi, ne ha vinti 75, sconfiggendo gli avversari in un faccia a faccia. Ha intercettato 51 palloni in questa stagione nella sua posizione di gioco come difensore, dandogli una percentuale di vittorie di circa il 32%. In media, ha intercettato 2.4 palle ogni 90 minuti.

Esempio di abilità

Lo Skill Bundesliga Match Fact ci consente di svelare le abilità e i punti di forza dei giocatori della Bundesliga. Le classifiche delle abilità mettono sotto i riflettori i giocatori che potrebbero essere passati inosservati prima nelle classifiche delle statistiche convenzionali come i gol. Ad esempio, prendi un giocatore come Michael Gregoritsch. Gregoritsch è un attaccante dell'FC Augsburg, sesto nella classifica dei finalisti alla giornata 21. Finora ha segnato cinque gol, il che non lo metterebbe in cima a nessuna classifica marcatori. Tuttavia, è riuscito a farlo in soli 663 minuti giocati! Uno di questi gol è stato il pareggio nel finale al 97 'che ha aiutato l'Augsburg a evitare la sconfitta in trasferta a Berlino.

Attraverso lo Skill Bundesliga Match Fact, possiamo anche riconoscere varie qualità di ogni giocatore. Un esempio di questo è la stella del Dortmund Erling Haaland, che si è anche guadagnato il badge di velocista e finisher, ed è attualmente al sesto posto tra i velocisti della Bundesliga.

Tutte queste metriche si basano sui dati sui movimenti dei giocatori, sui dati relativi ai goal, sui dati relativi all'azione del pallone e sui dati relativi ai passaggi. Elaboriamo queste informazioni in pipeline di dati ed estraiamo le statistiche pertinenti necessarie per competenza, consentendoci di calcolare lo sviluppo di tutte le metriche in tempo reale. Molte delle suddette statistiche sono normalizzate dal tempo in campo, tenendo conto dei giocatori che hanno poco tempo di gioco ma si comportano straordinariamente bene quando giocano. Le combinazioni e i pesi delle metriche sono combinati in un unico punteggio. Il risultato è una classifica per tutti i giocatori sulle abilità dei quattro giocatori. I giocatori che si classificano tra i primi 10 ricevono un badge di abilità per aiutare i fan a identificare rapidamente le qualità eccezionali che apportano alle loro squadre.

Implementazione e architettura

Bundesliga Match Facts che sono stati sviluppati fino a questo punto sono indipendenti l'uno dall'altro e si basano solo sull'acquisizione di dati di posizione e di eventi, nonché sui propri calcoli. Tuttavia, questo cambia per la nuova Bundesliga Match Fact Skill, che calcola le classifiche delle abilità in base ai dati prodotti da Match Facts esistenti, come ad esempio xGoals o xPass. Il risultato di un evento, forse un gol incredibile con poche possibilità di entrare, può avere un impatto significativo sulla classifica delle abilità finali. Pertanto, abbiamo costruito un'architettura che fornisce sempre le classifiche delle competenze più aggiornate ogni volta che c'è un aggiornamento dei dati sottostanti. Per ottenere aggiornamenti in tempo reale delle competenze, utilizziamo Amazon MSK, un servizio AWS gestito per Apache Kafka, come soluzione di streaming di dati e messaggistica. In questo modo, diversi Bundesliga Match Facts possono comunicare gli ultimi eventi e aggiornamenti in tempo reale.

L'architettura alla base di Skill è composta da quattro parti principali:

  • An Cluster senza server Amazon Aurora memorizza tutti gli output dei fatti di corrispondenza esistenti. Ciò include, ad esempio, i dati per ogni passaggio (come xPass, giocatore, ricevitore previsto) o tiro (xGoal, giocatore, obiettivo) che è avvenuto dall'introduzione di Bundesliga Match Facts.
  • Una centrale AWS Lambda La funzione scrive gli output Bundesliga Match Fact nel database Aurora e notifica agli altri componenti che c'è stato un aggiornamento.
  • Una funzione Lambda per ogni singola abilità calcola la classifica delle abilità. Queste funzioni vengono eseguite ogni volta che sono disponibili nuovi dati per il calcolo della competenza specifica.
  • Un cluster Amazon MSK Kafka funge da punto centrale di comunicazione tra tutti questi componenti.

Il diagramma seguente illustra questo flusso di lavoro. Ogni Bundesliga Match Fact invia immediatamente un messaggio di evento a Kafka ogni volta che c'è un aggiornamento a un evento (come un valore xGoals aggiornato per un evento di tiro). La funzione Lambda del dispatcher centrale viene attivata automaticamente ogni volta che un Bundesliga Match Fact invia un messaggio del genere e scrive questi dati nel database. Quindi invia un altro messaggio tramite Kafka contenente i nuovi dati a Kafka, che funge da trigger per le singole funzioni di calcolo delle abilità. Queste funzioni utilizzano i dati di questo evento trigger, nonché il cluster Aurora sottostante, per calcolare e pubblicare le classifiche delle abilità più recenti. Per uno sguardo più approfondito sull'uso di Amazon MSK all'interno di questo progetto, fare riferimento al post sul blog di Set Piece Threat.

Sommario

In questo post, abbiamo dimostrato come la nuova Bundesliga Match Fact Skill permetta di confrontare oggettivamente i giocatori della Bundesliga su quattro dimensioni principali del giocatore, basandosi su e combinando in tempo reale i precedenti Match Fact indipendenti della Bundesliga. Ciò consente ai commentatori e ai fan di scoprire abilità dei giocatori precedentemente inosservate e fare luce sui ruoli che i vari giocatori della Bundesliga ricoprono.

Il nuovo Bundesliga Match Fact è il risultato di un'analisi approfondita degli esperti di calcio della Bundesliga e dei data scientist di AWS per distillare e classificare le qualità dei giocatori di calcio sulla base di dati oggettivi sulle prestazioni. I badge delle abilità dei giocatori sono mostrati nella formazione e nelle pagine dei dettagli dei giocatori nell'app Bundesliga. Nella trasmissione, le abilità del giocatore vengono fornite ai commentatori attraverso il cercatore di storie di dati e mostrato visivamente ai fan durante la sostituzione del giocatore e quando un giocatore sale nella rispettiva top 10 della classifica.

Ci auguriamo che questo nuovissimo Match Fact della Bundesliga vi piaccia e che vi fornisca nuove informazioni sul gioco. Per saperne di più sulla partnership tra AWS e Bundesliga, visita Bundesliga su AWS!


Informazioni sugli autori

Simone Rolfes ha giocato 288 partite di Bundesliga come centrocampista centrale, ha segnato 41 gol e ha vinto 26 presenze con la Germania. Attualmente Rolfes ricopre il ruolo di Direttore Sportivo al Bayer 04 Leverkusen, dove supervisiona e sviluppa l'elenco dei giocatori professionisti, il dipartimento di scouting e lo sviluppo giovanile del club. Simon scrive anche colonne settimanali su Bundesliga.com sugli ultimi fatti sulle partite della Bundesliga forniti da AWS

Luuk Figdor è un Senior Sports Technology Specialist nel team dei servizi professionali di AWS. Lavora con giocatori, club, campionati e società di media come la Bundesliga e la Formula 1 per aiutarli a raccontare storie con i dati utilizzando l'apprendimento automatico. Nel tempo libero, gli piace imparare tutto sulla mente e sull'intersezione tra psicologia, economia e intelligenza artificiale.

Pascal Kuhner è uno sviluppatore di applicazioni cloud nel team dei servizi professionali di AWS. Lavora con i clienti di tutti i settori per aiutarli a raggiungere i loro risultati di business tramite lo sviluppo di applicazioni, DevOps e l'infrastruttura. È molto appassionato di sport e nel tempo libero ama giocare a basket e calcio.

Tarek Haschemi è un consulente all'interno di AWS Professional Services. Le sue abilità e aree di competenza includono lo sviluppo di applicazioni, la scienza dei dati, l'apprendimento automatico e i big data. Con sede ad Amburgo, supporta i clienti nello sviluppo di applicazioni basate sui dati all'interno del cloud. Prima di entrare in AWS, è stato anche consulente in vari settori come l'aviazione e le telecomunicazioni. È appassionato di consentire ai clienti il ​​loro viaggio di dati/AI verso il cloud.

Jakub Michalczyk è un Data Scientist presso Sportec Solutions AG. Diversi anni fa, ha preferito gli studi di matematica al gioco del calcio, poiché è giunto alla conclusione che non era abbastanza bravo in quest'ultimo. Ora combina entrambe queste passioni nella sua carriera professionale applicando metodi di apprendimento automatico per ottenere una visione migliore di questo bellissimo gioco. Nel tempo libero, gli piace ancora giocare a calcio a sette, guardare film polizieschi e ascoltare musica da film.

Javier Poveda-Panter è un Data Scientist per i clienti sportivi EMEA all'interno del team AWS Professional Services. Consente ai clienti nell'area degli sport per spettatori di innovare e capitalizzare i propri dati, offrendo esperienze di alta qualità a utenti e fan attraverso l'apprendimento automatico e la scienza dei dati. Segue la sua passione per un'ampia gamma di sport, musica e intelligenza artificiale nel tempo libero.

Timestamp:

Di più da Apprendimento automatico di AWS