Prevedi i risultati del Super Bowl 2023 usando Python

Feb 11 2023
Mancano solo pochi giorni al Super Bowl della NFL e quest'anno mi sento davvero entusiasta. Da persona curiosa non posso aspettare ancora qualche giorno per vedere il vincitore quindi ho pensato che sarebbe stato interessante provare a pronosticare in anticipo il vincitore.

Mancano solo pochi giorni al Super Bowl della NFL e quest'anno mi sento davvero entusiasta. Da persona curiosa non posso aspettare ancora qualche giorno per vedere il vincitore quindi ho pensato che sarebbe stato interessante provare a pronosticare in anticipo il vincitore. Ho usato Python e RandomForest Classifier per prevedere il vincitore, quindi ho usato Regressor per fare un'ipotesi sul punteggio. Ecco il mio modo di prevedere l'esito del Super Bowl.

i dati

Le prime cose vengono prima. Quindi ho iniziato con i dati. Dopo alcune ricerche e una breve panoramica delle statistiche mi sono reso conto che non ha molto senso guardare i dati diversi dall'ultima stagione. Troppe variabili stanno cambiando nel tempo. Nuovi giocatori, nuovi trasferimenti, nuove strategie e infortuni. Tutto ciò rende il gioco così imprevedibile e interessante da guardare. Quindi, ho usato solo le statistiche della stagione 2022 per prevedere l'esito del Super Bowl. Ovviamente mi ha lasciato solo 17 partite per ogni squadra. Non molto di un dato se non dire peggio. Ma vediamo fino a che punto possiamo spingerci.

I dati che ho utilizzato includono ogni singola partita della stagione 2022. Quindi, in totale ci sono 532 righe di informazioni preziose. Ho utilizzato le metriche successive per l'analisi.

Ho esaminato 32 squadre della NFL nell'ultima stagione e ne ho preso il nucleo, quindi ecco i grafici a dispersione per le metriche della squadra per ogni partita della stagione.

I grafici a dispersione mostrano la correlazione tra qualsiasi coppia di metriche all'interno del frame di dati.

Osservando brevemente i dati non riesco a notare correlazioni lineari tra le prestazioni della squadra ei punteggi che si aspettavano di ottenere durante la partita. Presumo che i cantieri veloci siano più significativi, rispetto ai cantieri di passaggio e il numero di palle perse tendono a correlarsi con un gioco di passaggio.

La prossima cosa da guardare prima di procedere con la previsione è la varianza della metrica principale. Qual è l'intervallo di punteggio a cui devo mirare?

Il punteggio totale è distribuito intorno ai 44 punti per partita

Distribuzione dei punti totali per partita

E il punteggio per vincitori e perdenti è rispettivamente di circa 28 e 17 punti

Distribuzione dei punti per vincitori e vinti
L'istogramma dei punteggi guadagnati per vincitori e vinti

Squadre bersaglio

Dato che sono abbastanza fortunato da vedere l'inizio del Super Bowl tra un paio di giorni, so già quali squadre si sfideranno per il trofeo. Avendo un così grande aiuto, la previsione dovrebbe essere facile come scegliere tra A e B. Quindi, diamo un'occhiata più da vicino alle squadre.

Kansas City Chiefs, che hanno vinto il Super Bowl due volte nella loro storia. L'ultima volta nel 2019. Non molto tempo fa.

I Philadelphia Eagles hanno vinto solo una volta nella loro storia, ovvero nel 2018. Ok, sembra che questo non ci avvicinerà alla scelta del gioco preferito. Diamo un'occhiata alle prestazioni delle squadre durante la passata stagione.

Sembra che entrambe le squadre siano ugualmente forti. L'unica cosa che posso notare è che Phila tende a guadagnare più Rushing Yard per partita, poiché i Chiefs sono migliori nei passaggi. Ok, vediamo fino a che punto possiamo arrivare con questi dati.

Classificatore RandomForest per prevedere il vincitore

All'inizio suddividiamo i dati in Train e testiamo i set di dati. Ciò significa ancora meno dati per addestrare il modello, ma almeno siamo in grado di verificare se possiamo prevedere qualcosa o meno.

Suddividi i dati in set di dati di addestramento e test

Quando scelgo i predittori per costruire il mio modello, devo ignorare fattori come la partita in casa/trasferta e il numero di partita nella stagione poiché è lo stesso per entrambe le squadre.

Sulla base dei dati, RF può fare una previsione con un tasso di accuratezza del 73,6%.
Il punteggio di precisione è 0,731

Eccoci! Il modello che abbiamo costruito può prevedere il vincitore in 106 partite su 145 e il perdente in 98 partite su 132. Il che ci dà il punteggio di precisione di 0,731. Assolutamente niente male per dati così limitati.

Ed ecco il momento della Verità. Chi vincerà?

Aquile!

Ta-dam. I capi possono perdere la partita con il , il che significa una vittoria per gli Eagles con una precisione del 73,6%.

RandomForest Regressor per prevedere il punteggio

Andando avanti potremmo voler conoscere il potenziale risultato del gioco. E qui useremo RandomForest Regressor per costruire il modello per i dati nominali.

Ok, sembra che prevedere il punteggio sia un compito più complicato anche per i modelli ML avanzati. Qui abbiamo solo un tasso di precisione del 62,16%. Ok, vediamo dove ci porterebbe.

Utilizzando le metriche di base per ogni squadra abbiamo la previsione di ..

RandomForest Regressor per prevedere il punteggio

24–31. Aquile vince!

Sommario

Lì ce l'abbiamo! Ora abbiamo una previsione che prende in considerazione le statistiche stagionali, le prestazioni delle squadre e prevede il vincitore della partita del Super Bowl. Ovviamente, la probabilità del punteggio finale è praticamente inferiore al 100% e non posso dire che ci scommetterei. Ma questo risultato sembra più probabile che si verifichi rispetto a qualsiasi altro. Questo modello può essere sviluppato ulteriormente, aggiungendo più fattori nell'analisi, come: statistiche del quarterback, rapporto sugli infortuni, condizioni meteorologiche e così via. Quindi, in seguito cercheremo di realizzare una previsione più accurata.

Collegamenti

  • Taccuino Jupyter originale
  • Linkedin