Prevedere i salari NBA con l’apprendimento automatico

Prevedere salari NBA con l'apprendimento automatico

Costruzione di un modello di apprendimento automatico con Python per prevedere i salari NBA e analizzare le variabili più influenti

(Foto di Emanuel Ekström su Unsplash)

La NBA si distingue come una delle leghe più lucrative e competitive nello sport. Negli ultimi anni, i salari dei giocatori NBA sono stati in trend crescente, ma dietro ogni schiacciata e tiro da tre punti si cela una complessa rete di fattori che determinano questi salari.

Dalla performance dei giocatori e dal successo della squadra alla domanda di mercato e agli accordi di sponsorizzazione, numerosi fattori entrano in gioco. Chi non si è mai chiesto perché la propria squadra abbia speso così tanto per un giocatore che non risponde alle aspettative, o si è meravigliato della strategia di un accordo particolarmente di successo?

In questo articolo, utilizziamo le capacità dell’apprendimento automatico con Python per prevedere i salari NBA e scoprire i fattori cruciali che influenzano maggiormente le entrate dei giocatori.

Tutto il codice e i dati utilizzati sono disponibili su GitHub.

Comprensione del problema

Prima di affrontare il problema, è essenziale comprendere i fondamenti del sistema salariale della lega. Quando un giocatore è disponibile sul mercato per firmare un contratto con qualsiasi squadra, è noto come un free agent (FA), un termine che verrà utilizzato molto in questo progetto.

La NBA opera secondo un complesso insieme di regole e regolamenti che mirano a mantenere un equilibrio competitivo tra le squadre. Due concetti chiave sono al centro di questo sistema: il salary cap e il luxury tax.

Il salary cap funge da limite di spesa, limitando quanto una squadra può spendere per i salari dei giocatori in una determinata stagione. Il limite è determinato dal fatturato della lega e viene aggiornato ogni anno per garantire che le squadre operino all’interno di un quadro finanziario ragionevole. Ha anche l’intento di impedire alle squadre di grandi mercati di spendere in modo significativo rispetto alle controparti di mercati più piccoli, promuovendo la parità tra le franchigie.

La distribuzione del salary cap tra i giocatori può variare, con salari massimi per i giocatori di alto livello e salari minimi per i rookie e i veterani.

Tuttavia, non è raro superare il salary cap, specialmente per le squadre che mirano a costruire roster in grado di competere per il titolo. Quando una squadra supera il salary cap, entra nel campo del luxury tax. Il luxury tax impone una penalità alle squadre che spendono oltre una determinata soglia, scoraggiando le squadre da una spesa eccessiva e fornendo anche entrate aggiuntive alla lega.

Esistono molte altre regole che fungono da eccezioni, come la mid-level exception (MLE) e la trade exception che consentono alle squadre di effettuare strategici movimenti di roster, ma per questo progetto la conoscenza del salary cap e del luxury tax è sufficiente.

Evoluzione del Salary Cap NBA dal 1984 al 2023 (Immagine dell'autore)

A causa di questa continua crescita del salary cap, l’approccio selezionato utilizzerà la percentuale del cap come obiettivo anziché l’importo del salario stesso. Questa decisione mira a incorporare la natura in evoluzione del cap, garantendo che l’esito rimanga invariato rispetto alle fluttuazioni temporali e rimanga applicabile anche durante la valutazione delle stagioni storiche. Tuttavia, va notato che questo non è perfetto e rappresenta solo un’approssimazione.

Dati

Per questo progetto, l’obiettivo è prevedere i salari per i giocatori che firmano un nuovo contratto la prossima stagione utilizzando dati solo dalla stagione precedente.

Le statistiche individuali utilizzate sono:

  • Statistiche medie per partita
  • Statistiche totali
  • Statistiche avanzate
  • Variabili individuali: età, posizione
  • Variabili relative al salario: salario della stagione precedente, salario massimo per la stagione precedente e corrente e la % del cap di quel salario.
Distribuzione dei salari per la stagione 2022-23 (Immagine dell'autore)

Dato che non conosciamo la squadra per cui il giocatore firmerà, sono stati inclusi solo i singoli attributi.

In totale, questo studio aveva 78 attributi per ogni giocatore più l’obiettivo.

La maggior parte dei dati è stata ottenuta utilizzando BRScraper, un recente pacchetto Python creato da me che consente di estrarre e accedere facilmente ai dati del basket da Basketball Reference, inclusi NBA, G League e altre leghe internazionali. Sono state seguite tutte le linee guida relative a causare danni al sito web o ostacolarne le prestazioni.

Trattamento dei dati

Un aspetto interessante da considerare è la selezione dei giocatori per l’addestramento dei modelli. Inizialmente, ho selezionato tutti i giocatori disponibili, tuttavia la maggior parte di loro sarebbe già sotto contratto e, in questo caso, il valore del salario non cambia drasticamente.

Ad esempio, immagina se un giocatore firma per $20M per 4 anni. Riceve circa $5M all’anno (molto raramente tutti gli anni hanno lo stesso valore esatto, di solito c’è una certa progressione nel salario intorno a $5M). Tuttavia, quando un free agent firma un nuovo contratto, il valore può cambiare molto più drasticamente.

Ciò significa che addestrare un modello con tutti i giocatori disponibili può portare a una migliore performance complessiva (dopotutto, la maggior parte dei giocatori avrebbe un salario molto vicino all’ultimo!), ma quando si valutano solo i free agent, la performance sarebbe significativamente peggiore.

Dato che l’obiettivo è prevedere il salario di un giocatore che firma un nuovo contratto, solo questo tipo di giocatore dovrebbe essere presente nei dati, in modo che il modello possa capire meglio quali sono i pattern tra questi giocatori.

La stagione di interesse è la stagione 2023-24 che sta arrivando, ma verranno utilizzati dati a partire dal 2020-21 per aumentare il numero di esempi, il che è possibile grazie alla scelta dell’obiettivo. Le stagioni più vecchie non sono state utilizzate a causa della mancanza di dati dei free agent.

Ciò lascia 426 giocatori nelle tre stagioni selezionate, di cui 84 sono free agent del 2023-24.

Modellazione

La divisione tra train e test è stata progettata in modo che tutti i free agent del 2023-24 fossero esclusivamente inclusi nel set di test, mantenendo un rapporto di circa 70/30.

Inizialmente sono stati utilizzati diversi modelli di regressione:

  • Support Vector Machines (SVM)
  • Elastic Net
  • Random Forest
  • AdaBoost
  • Gradient Boosting
  • Light Gradient Boosting Machine (LGBM)

Le performance di ognuno di essi sono state valutate utilizzando l’errore quadratico medio radice (RMSE) e il coefficiente di determinazione ().

Puoi trovare la formula e l’explicazione di ogni metrica nel mio articolo precedente, Predire il MVP della NBA con il Machine Learning.

Predire il MVP della NBA con il Machine Learning

Costruire un modello di machine learning per prevedere il MVP della NBA e analizzare le variabili più influenti.

towardsdatascience.com

Risultati

Osservando l’intero dataset con tutte le stagioni, sono stati ottenuti i seguenti risultati:

Valori di RMSE e R² ottenuti tra i diversi modelli (Immagine dell'autore)

I modelli hanno ottenuto una buona performance complessiva, con Random Forest e Gradient Boosting che hanno ottenuto il RMSE più basso e il R² più alto, mentre AdaBoost ha avuto le peggiori metriche tra i modelli utilizzati.

Analisi delle Variabili

Un approccio efficace per visualizzare le principali variabili che influenzano le previsioni del modello è attraverso i valori SHAP, una tecnica che fornisce una spiegazione ragionevole su come ogni caratteristica influisce sulle previsioni del modello.

Di nuovo, una spiegazione più approfondita su SHAP e su come interpretare il suo grafico può essere trovata in Predire l’MVP della NBA con l’Apprendimento Automatico.

Grafico SHAP relativo al modello Random Forest (Immagine dell'autore)

Possiamo trarre alcune importanti conclusioni da questo grafico:

  • Minuti per partita (MP) e punti (PTS) per partita e totali sono le tre caratteristiche più influenti.
  • Stipendio della stagione precedente (Stipendio S-1) e % del Salary Cap di quel salario (% Cap S-1) sono anche molto influenti, essendo rispettivamente al 4° e 5° posto.
  • Statistiche avanzate non sono predominanti tra le caratteristiche più importanti, con solo due di esse che compaiono nella lista, WS (Win Share) e VORP (Value Over Replacement Player).

Questo è un risultato molto sorprendente, poiché diversamente dal progetto MVP, in cui le statistiche avanzate dominavano il risultato finale di SHAP, i salari dei giocatori sembrano essere molto più correlati a statistiche comuni come i minuti, i punti e le partite iniziate.

Questo è sorprendente perché la maggior parte delle statistiche avanzate è stata progettata con l’obiettivo di valutare meglio le prestazioni di un giocatore. La mancanza del PER (Player Efficiency Rating) tra i primi 20 (compare al 43° posto) è particolarmente sorprendente.

Questo solleva la possibilità che durante le trattative salariali, i general manager potrebbero aderire a un approccio relativamente più semplice, trascurando potenzialmente il più ampio spettro delle metriche di valutazione delle prestazioni.

Forse il problema non è così complesso dopo tutto! Semplificando, il giocatore che gioca più minuti e segna più punti guadagna di più!

Risultati Aggiuntivi

Focalizzandoci sui free agent di quest’anno e confrontando le loro previsioni con lo stipendio effettivo:

Principali risultati del modello Random Forest per la stagione 2023-24 (valori in milioni) (Immagine dell'autore)

In cima abbiamo i cinque giocatori che sembrano essere svalutati (che ricevono meno di quanto dovrebbero), nel mezzo ci sono cinque giocatori correttamente valutati e in fondo ci sono i cinque giocatori sovravalutati (che ricevono più di quanto dovrebbero). È importante notare che queste valutazioni si basano esclusivamente sui risultati del modello.

A partire dalla cima, l’ex MVP Russell Westbrook è il giocatore più sottostimato secondo il modello, il che, secondo me, è un dato di fatto, avendo firmato un contratto di ~$4M/anno con i Clippers. Eric Gordon, Mason Plumlee e Malik Beasley si trovano anche in una situazione simile, guadagnando contratti molto bassi nonostante buone prestazioni. D’Angelo Russell appare anche in questa top five nonostante guadagni uno stipendio di $17M/anno, il che indica che dovrebbe guadagnare ancora di più.

Interessante notare che tutti questi giocatori hanno firmato con squadre competitive (Clippers, Suns, Bucks e Lakers). Questo è un comportamento noto in cui i giocatori scelgono di guadagnare meno per avere la possibilità di giocare per una squadra che può vincere il titolo.

Nel mezzo, Taurean Prince, Orlando Robinson, Kevin Knox e Derrick Rose guadagnano tutti stipendi bassi che sembrano essere adeguati. Caris LeVert guadagna $15M/anno, ma sembra anche valere esattamente quella cifra.

In fondo, Fred VanVleet è stato nominato il giocatore più sopravvalutato. I Rockets, operando come squadra di ricostruzione, hanno fatto una mossa significativa con il suo nuovo contratto triennale del valore di $128.5M. Hanno anche firmato Dillon Brooks per un valore superiore alle aspettative.

Khris Middleton ha firmato un grande prolungamento questo estate. Nonostante sia una squadra contendente, i Bucks appartengono a un mercato non principale e non possono permettersi di perdere uno dei loro migliori giocatori. Draymond Green e Cameron Johnson hanno situazioni simili nelle rispettive squadre.

Conclusioni

Prevedere gli esiti nello sport è sempre una sfida. Dalla scelta dell’obiettivo alla selezione dei giocatori, questo progetto si è dimostrato più complesso del previsto. Tuttavia, l’esito si è rivelato piuttosto semplice e i risultati ottenuti sono stati molto soddisfacenti!

Sicuramente ci sono molti modi in cui possono essere migliorati, uno dei quali è l’utilizzo di tecniche di selezione delle caratteristiche o di riduzione della dimensionalità per ridurre lo spazio delle caratteristiche e quindi la varianza.

Inoltre, avere accesso agli agenti liberi delle stagioni precedenti permetterebbe anche di aumentare il numero di campioni. Tuttavia, tali dati non sembrano essere accessibili pubblicamente al momento.

Molte altre variabili esterne hanno anche influenza in questa materia. Ad esempio, non c’è dubbio che se in qualche modo la squadra fosse nota, variabili come seed dell’anno scorso, esito dei playoff e percentuale di tetto salariale già utilizzata potrebbero essere davvero informative. Tuttavia, mantenendo l’approccio che rispecchia le circostanze di uno scenario reale di un agente libero in cui la squadra è sconosciuta, potrebbe potenzialmente produrre un risultato più vicino al “vero valore” del giocatore, indipendentemente dal contesto della squadra che firma.

Una delle principali premesse di questo progetto era l’utilizzo solo dei dati della stagione precedente per prevedere il salario successivo. L’incorporazione di statistiche delle stagioni precedenti potrebbe effettivamente produrre risultati migliorati, dato che le prestazioni storiche di un giocatore possono offrire preziose intuizioni. Tuttavia, la natura estensiva di tali dati richiederebbe una selezione oculata delle caratteristiche per gestire la complessità e l’alta dimensionalità.

Di nuovo, tutto il codice e i dati utilizzati sono disponibili su GitHub.

(Foto di Marius Christensen su Unsplash)

Sono sempre disponibile sui miei canali (LinkedIn e GitHub).

Grazie per l’attenzione!👏

Gabriel Speranza Pastorello