Un caso di Predictive Analytics: March Madness Kaggle Competition

 In Big Data, Machine Learning, Predictive Analytics

Negli Stati Uniti con March Madness viene identificato il periodo in cui si disputa la fase finale del Torneo universitario di pallacanestro. Inizia durante il mese di marzo, al termine della Regular Season, e viene seguito in maniera quasi ossessiva da parte di tutti gli americani: semplici tifosi, ex allievi degli atenei, atleti professionisti, senza dimenticare i domiciliati alla Casa Bianca (come noto, Barack Obama è solito fornire le sue previsioni per la fase finale del torneo NCAA).

In occasione della March Madness di quest’anno, Kaggle e HP hanno deciso di indire una competition di Predictive Analytics per sfidare i partecipanti a prevedere i possibili risultati del Torneo NCAA. Ogni sfidante aveva a disposizione un set di dati storici che tenesse conto di informazioni sui risultati e sulle performance delle squadre a partire dalla stagione 84-85.

La sfida, esattamente come il campionato universitario, era costituita da due fasi, scandite dal finire della stagione regolare ai primi di marzo.

Fase 1 – Model Building

In questa fase è stato realizzato un modello in grado di prevedere per le ultime quattro stagioni i risultati di tutti gli scontri potenzialmente disputabili tra le squadre che hanno avuto accesso alla fase finale del torneo.
Trattandosi di eventi già avvenuti, è stato possibile ottenere in tempo reale uno score relativo alla bontà previsionale del modello proposto in modo da affinarlo in vista della seconda fase.

Fase 2 – 2015 Championship

Consolidato il modello della fase 1, questo è stato applicato ai dati della stagione regolare 14-15 così da poter prevedere tutti i possibili scontri tra le squadre che sono entrate nella fase finale. Entrambe le fasi della competition sono state valutate con una formula in grado di attribuire uno score ai modelli, stabilendo quanto i risultati forniti si discostino dai risultati effettivi (algoritmo basato sulla Logarithmic Loss Function).

Va ricordato che i 65 scontri realmente disputati nella fase finale, a eliminazione diretta tra 68 squadre, sono stati ovviamente meno di tutti i possibili 2.278 scontri [ 2.278 =(68*67)/2 ]; lo spirito predittivo della competition era volto a valutare tutte le possibili combinazioni indipendentemente da quando due squadre potevano affrontarsi, anche se questo fosse stato potenzialmente impossibile vista la formula a eliminazione diretta.

È possibile individuare nella risoluzione dell’intero progetto tre principali step:

  1. Analisi dei dati forniti e individuazione di indici per la valutazione delle performance delle squadre
  2. Storage e data preparation
  3. Modeling

1. Analisi dei dati forniti e individuazione di indici di performance

Il set di dati fornito per poter costruire le previsioni era costituito da diversi file contenenti informazioni che rappresentano vari aspetti dei campionati disputati dal 1985 a oggi. Si spaziava dall’elenco dei risultati delle gare disputate con il dettaglio statistico di ogni voce (punti, assist, rimbalzi, tiri sbagliati, ecc…) alla rappresentazione in formato tabellare del meccanismo di avanzamento a eliminazione diretta del Torneo, fino ad arrivare all’elenco che attribuiva il posizionamento nel tabellone del Torneo sulla base del ranking in Regular Season.

Per costruire un modello predittivo, sono stati calcolati tre diversi indici in grado di rappresentare tre diversi aspetti dell’andamento di una squadra durante una singola stagione: Plus/Minus, PER e RPI.

PLUS/Minus:

  • Rappresenta la differenza media tra punti segnati e punti subiti durante un certo arco temporale.
  • Nasce come estensione del plus/minus per giocatore che rappresenta la differenza di scarto di una squadra (rispetto alla squadra avversaria) tra quando il giocatore è in campo e quando è in panchina.

PER (Player Efficiency Rating)

  • Rappresenta l’efficienza statistica di un giocatore basata sulla differenza (pesata) di tutte le voci statistiche positive e quelle negative, rapportata ai minuti giocati.
  • Considerando una squadra come aggregazione di giocatori, si può ampliare il concetto di PER ai dati di una squadra nel corso di un determinato periodo.

PER= [ FGM*85,910 + Steals*53,897 + 3PTM*51,757 + FTM*46,845 + Blocks*39,190 + Off_Reb*39,190 + Assists*34,677 + Def_Reb*14,707 – Foul*17,174 – FT_Miss*20,091 – FG_Miss*39,190 -TO*53,897] * (1 / Minutes)

Caso di studio per il calcolo dell'indice RPI

Caso di studio per il calcolo dell’indice RPI

RPI (Rating Percentage Index)

  • Viene utilizzato per stabilire un ranking tra squadre basandosi sul bilancio di vittorie e sconfitte in relazione alla difficoltà delle partite giocate.
  • È composto da tre sottoindici che concorrono con pesi diversi al punteggio finale: RPI = (WP * 0,25) + (OWP * 0,50) + (OOWP * 0,25).
  • WP è il bilancio percentuale tra vittorie e sconfitte pesato sulla base del fattore campo (vittoria in casa 0,6; vittoria in trasferta 1,4; sconfitta in casa 1,4; sconfitta in trasferta 0,6).
  • OWP è la media dei valori di WP degli avversari di una data squadra, escluse le partite giocate contro la squadra in questione.
  • OOWP è la media del valore di OWP degli avversari di una data squadra.

2. Storage e Data Preparation

Essendo la competition sponsorizzata da HP, per la gestione dei dati storici e la conseguente manipolazione, è stato usato HP Vertica Database Server, piattaforma cluster-based e column-oriented per la gestione di grandi quantità di dati.

Avendo individuato tre indici di riferimento (Plus/Minus, PER e RPI), a partire dai dati forniti il processo di elaborazione dati si è basato sulla creazione di tabelle e viste intermedie con lo scopo di ottenere due tabelle finali:

  • elenco di tutti gli scontri realmente disputati nel corso della Regular Season, comprensivo per ogni squadra del valore dei tre indici (due dei quali incrementali, quindi calcolati in relazione al giorno dell’incontro, mentre l’RPI è calcolato su base annuale) e del bilancio vittorie/sconfitte negli scontri diretti tra le due squadre.
  • elenco di tutti i possibili accoppiamenti tra le squadre partecipanti alla fase finale del Torneo con lo stesso contenuto informativo del caso precedente.

3. Modeling

Workflow della fase di Modeling

Workflow della fase di Modeling

Come analytics tool sono stati utilizzate due diverse soluzioni in modo da poter confrontare e confermare i risultati a partire dal medesimo input.

H2O è stato preso come riferimento per la prima fase in quanto già utilizzato in altre competition indette da Kaggle, mentre Distributed R (libreria in grado di collegare un ambiente R con HP Vertica, sfruttando il calcolo distribuito) è stato scelto per realizzare il processo previsionale utilizzando un modello statistico analogo a quello scelto con H2O nella fase 1.

La formula della competition prevede di poter conoscere l’efficienza dei modelli proposti solo per la prima fase, pertanto la scelta su quale modello applicare ai dati della seconda fase è stata ponderata mediante una fase di training e testing in modo da ottenere un risultato attendibile.

Conclusioni

Per la fase 1 si è utilizzato il modello di regressione logistica. A fronte di alcune modifiche sulle variabili di input, come ad esempio l’utilizzo (ove possibile) degli indici calcolati in maniera incrementale e l’eliminazione di alcuni campi non significativi, sono stati ottenuti progressivi miglioramenti nello score.

Per quanto riguarda la fase 2, i due strumenti di analytics hanno restituito risultati concordanti e pertanto sono state effettuate le due sottomissioni richieste basandosi sul modello utilizzato nella Fase 1, differenziandole solamente in termini di volumi di dati: la prima ha tenuto conto della sola stagione 14-15, mentre la seconda ha considerato i dati di tutti gli ultimi e 5 i campionati.

Lo score ottenuto alla fase 2 è stato considerevolmente superiore rispetto allo score della fase 1, a dimostrazione del fatto che migliorando le informazioni a disposizione è possibile creare modelli predittivi più performanti.