Prevendo o MVP da NBA com Machine Learning

Construindo um modelo de Machine Learning do zero para prever o MVP da NBA de 2021–22 e analisar as variáveis ​​mais impactantes no resultado.

Gabriel Pastorello
LatinXinAI
12 min readJul 6, 2022

--

Prêmio de MVP

Toda temporada, sempre há uma grande discussão sobre o prêmio de Most Valuable Player da NBA, o maior prêmio individual que um jogador de basquete pode receber. E é difícil explicar para uma pessoa que não acompanha o esporte quais são os critérios utilizados nessa premiação.

Algo que já confunde algumas pessoas é que o MVP não é um prêmio para o melhor jogador, e sim para o jogador mais valioso da temporada regular. Então surge a pergunta: O que é ser mais valioso?

É aquele jogador que tem maior impacto positivo no seu time. Logo, o desempenho do time também é uma variável que influencia esse prêmio individual, já que ele tem que ter uma boa campanha para corroborar esse impacto. Para isso, a equipe precisa de um bom elenco de suporte para ajudar o MVP, já que não se ganha jogos sozinho. Porém, não pode ser um elenco tão bom assim, porque dessa forma eles não precisariam do MVP para conseguir uma boa colocação.

Já dá pra notar o quão confuso e subjetivo é esse prêmio.

Pensando nisso, resolvi aplicar ferramentas de Machine Learning para observar os padrões na lógica da escolha do MVP, verificando quais são as estatísticas mais importantes nessa escolha, e se seria possível criar um modelo que, ao final da temporada regular de 2022–23, consiga predizer o MVP antes do resultado oficial ser divulgado.

Todo o código e as bases utilizadas estão disponíveis no GitHub.

Entendendo o problema

Antes de qualquer coisa, é importante entender como funciona o sistema de votação do prêmio para abordar os dados e os modelos da melhor forma. Queremos a resposta para a pergunta: Quem será o MVP da NBA?

Então, pode-se pensar que este é um problema de classificação, onde as opções são MVP ou não-MVP. Porém, essa abordagem iria encontrar muitos problemas, pois o número de jogadores não-MVP é muito maior que o número de jogadores MVP, o que traria dificuldade no treinamento e avaliação do modelo.

Logo, devemos abordá-lo como um problema de regressão. Mas que variável utilizar como alvo? Vamos entender como funciona a votação para definir.

Hoje, a votação para o prêmio de MVP é feita por membros da mídia que não possuem afiliação com times ou jogadores, onde cada escolhe um voto de primeiro lugar (10 pontos), segundo lugar (7 pontos), terceiro lugar (5 pontos), quarto lugar (3 pontos) e quinto lugar (1 ponto).

Resultado da votação de MVP para a temporada 2021–22
Resultado da votação de MVP para a temporada 2021–22

O jogador com mais pontos é escolhido como MVP. Porém, não é a quantidade total de pontos que iremos utilizar na regressão, pois o número de votantes pode variar em diferentes anos, o que altera o número de pontos totais possíveis. Para eliminar esse problema, a variável que iremos tentar predizer é a MVP Share.

A MVP Share nada mais é que os pontos obtidos por um jogador dividido pelo máximo possível de pontos que poderia ser obtido naquele ano, podendo ter valores de 0 a 1.

Fórmula para a MVP Share
Fórmula para a MVP Share

Assim, o jogador com maior MVP Share será classificado como MVP pelo modelo.

Dados

Os dados individuais utilizados foram:

  • Estatísticas médias por jogo
  • Estatísticas totais
  • Estatísticas avançadas

Também foram utilizados:

  • Colocação (seed) e porcentagem de vitórias do time
  • Resultado da votação para MVP (MVP Share)

No total, esse estudo contou com 71 variáveis para cada jogador.

A resposta para a pergunta anterior “O que é ser mais valioso?” ainda possui mais um grau de variabilidade: costuma variar com o tempo. Utilizar dados de temporadas muito antigas acaba resultando em resultados piores para a predição das mais recentes, pois o que se pensava e se discutia sobre o prêmio de MVP não é mais exatamente o mesmo.

Como o objetivo será predizer o MVP da temporada 2022–23, para esse estudo estarão sendo utilizados dados das temporadas de 2006–07 em diante (até 2021–22), totalizando 16 temporadas.

Os dados citados acima foram coletados para todos os jogadores que entraram pelo menos 1 minuto na temporada, e foram retirados do Basketball Reference.

Tratamento dos Dados

Mesmo considerando um problema de regressão, ainda assim o número de jogadores com um valor diferente de zero em MVP Share é pequeno, sendo normalmente de 10 a 14 por temporada, dentre aproximadamente 450 jogadores. Isso caracteriza um dataset desbalanceado.

Por isso, para conseguir uma boa performance do modelo precisamos fazer algumas considerações. Uma possibilidade seria selecionar apenas aqueles jogadores que estão na conhecida MVP Race, ranking não-oficial do prêmio com 10 jogadores atualizado durante a temporada. Ou, apenas aqueles com MVP Share diferente de zero (apenas para o treino, pois em um caso real não teríamos essa informação).

Porém, isso iria de certa forma facilitar parte do trabalho do modelo, já selecionando os melhores jogadores e mais prováveis de ganhar o prêmio. Como a ideia desse estudo é que o modelo consiga predizer o MVP dentre todos os jogadores possíveis, sem nenhum tipo de ajuda externa, não é isso que faremos.

Então como diminuir o número de jogadores, filtrando-os de modo a ter certeza que nenhum que pode vir a ganhar o prêmio foi retirado?

Nessa etapa, vemos a importância de ter conhecimento geral do assunto (domain knowledge) para direcionar o projeto da melhor maneira possível.

Podemos pensar o seguinte: um jogador com média de apenas 10 pontos por jogo não irá ganhar o MVP, certo? Então esse jogador pode ser retirado da base sem problema algum.

Estatísticas dos MVPs das últimas 16 temporadas
Estatísticas dos MVPs das últimas 16 temporadas

Ou, um jogador que jogou apenas 30 dos 82 jogos, ou que não chegou aos playoffs, e assim por diante. Assim, podemos estabelecer alguns critérios mínimos para os jogadores serem considerados.

Pensando nisso, realizei uma pesquisa sobre as menores médias e estatísticas por um MVP da história para estabelecer esses critérios mínimos (StatMuse facilitou muito esse processo):

  • Karl Malone foi MVP em 98–99 com 49 jogos
  • Wes Unseld foi MVP em 68–69 com 13.8 PPG e com 10.9 FGA
  • Steve Nash foi MVP em 04–05 com 3.3 REB
  • Moses Malone foi MVP em 82–83 com 1.3 AST
  • Bob Cousy foi MVP em 56–57 com 37.8% de FG%
  • Giannis Antetokounmpo foi MVP em 19–20 com 30.4 min
  • Kareem Abdul-Jabbar foi o único MVP a não ir aos playoffs em 1976
  • Dave Cowens foi MVP em 72–73 com um PER de 18.1
  • Nunca um MVP foi trocado no meio da temporada que ganhou o prêmio
Wes Unseld: o MVP com apenas 13.8 pontos por jogo
Wes Unseld: o MVP com apenas 13.8 pontos por jogo

Utilizando esses valores como base, podemos filtrar a grande maioria dos jogadores, sobrando apenas 20 a 30 por temporada. Isso com premissas quase que universais, sem abrir mão da imparcialidade.

Esses filtros irão facilitar muito a avaliação da performance do modelo, tanto no treino quanto no teste real.

Agora, com a nossa base de dados já pronta, podemos partir para a criação do modelo.

Modelagem

Inicialmente, vários modelos de regressão foram utilizados:

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

A performance de cada um deles foi avaliada usando a raiz quadrada do erro-médio (RMSE, do inglês root mean squared error) e o coeficiente de determinação ().

Fórmulas para RMSE e R²
Fórmulas para RMSE e R²

O RMSE calcula a raiz dos erros quadráticos médios entre os valores reais e as predições. Ele é muito utilizado pois é uma métrica que pune os erros grandes (ao elevar ao quadrado), mas está na mesma unidade da variável de interesse (ao fazer a raiz). Ou seja, quanto menor o seu valor, melhor.

Entretanto, estar nas mesmas unidades da variável pode fazer com que seja difícil definir o que seria um valor bom ou aceitável de RMSE. Por isso, também vamos utilizar o R² como uma métrica alternativa.

O representa a proporção da variância que foi explicada pelo modelo, variando de 0 a 1. Ou seja, quanto mais próximo de 1, significa que maior é a variabilidade dos dados que pode ser explicada pelo modelo.

Resultados

Em um primeiro momento, para melhor avaliar a capacidade de cada modelo, a temporada de 2021–22 foi separada para teste, enquanto as outras 15 restantes foram utilizadas como treino.

Nisso foram obtidos os valores de RMSE e R² de cada modelo, além de serem definidos os parâmetros otimizados para o restante do estudo.

Ao final desse processo, foram obtidos os seguintes resultados:

Valores de RMSE e R² obtidos dentre os diferentes modelos para a temporada de 2021–22

SVM, Random Forest e LGBM, respectivamente, obtiveram os menores valores de RMSE e maiores valores de R². AdaBoost e Gradient Boosting também tiveram resultados adequados, com o Elastic Net tendo as piores métricas dentre os modelos utilizados.

Agora olhando para o ranking final, um ponto positivo: 5 dos 6 modelos acertaram Nikola Jokić como MVP:

Top 3 da disputa de MVP dentre os diferentes modelos para a temporada de 2021–22
Top 3 da disputa de MVP dentre os diferentes modelos para a temporada de 2021–22

O Gradient Boosting foi o único que classificou Giannis Antetokounmpo como MVP. O AdaBoost colocou Luka Dončić em 3º (ele foi o 5º).

Fora isso, todos os outros acertaram os jogadores do Top 3. Porém, os modelos classificaram Giannis em 2º lugar da disputa e Joel Embiid em 3º, quando no ranking real temos o contrário.

Isso pode ser explicado pelo fato de, apesar de Giannis ter tido uma excelente temporada em números e com um bom desempenho do seu time (Bucks com a mesma campanha que o 76ers, na frente pelos critérios de desempate), ele sofreu do que é conhecido como voter fatigue.

Giannis já foi MVP duas vezes recentemente, e tanto o público quanto os votantes tendem a preferir, mesmo que inconscientemente, um jogador emergente na disputa (como Embiid) do que um já vencedor do prêmio (especialmente se for mais de uma vez).

LeBron já sofreu com isso, e já adiantando o que acontecerá na próxima temporada, apenas uma performance histórica para que Jokić, o vencedor do prêmio nos últimos 2 anos, ganhe o MVP pela terceira vez seguida.

Análise das Variáveis

Uma maneira de visualizar quais variáveis foram as mais importantes nas predições dos modelos é usando os SHAP Values (SHapley Additive exPlanations). SHAP é uma técnica baseada em teoria dos jogos que permite explicar razoavelmente bem o quanto cada variável está afetando as predições do modelo.

Tomemos como exemplo o modelo SVM, que obteve as melhores métricas:

Gráfico SHAP relativo ao modelo SVM
Gráfico SHAP relativo ao modelo SVM

Esse gráfico possui muitas informações, então vamos entendê-lo:

No eixo Y temos as 20 variáveis com maior impacto no modelo SVM. Cada ponto representa um jogador, e para cada uma dessas variáveis, há um gradiente de cores do vermelho para o azul, onde azul significa um valor baixo e vermelho um valor alto para a variável em questão.

No eixo X são os valores de SHAP obtidos. Quanto mais a direita, quer dizer que maior é o impacto positivo daquela variável para a variável de interesse (MVP Share). Quanto mais a esquerda, maior é o impacto negativo da variável para a MVP Share.

Ou seja, para a variável Seed (colocação geral do time): valores altos de Seed (colocação ruim) afetam negativamente a MVP Share, já valores baixos (colocação boa) a afetam positivamente, o que faz sentido.

Com esse gráfico, podemos tirar algumas conclusões importantes:

  • As três variáveis individuais mais impactantes são: PER (Player Efficiency Rating), WS/48 (Win Shares per 48 minutes) e BPM (Box Plus-Minus)
  • As duas variáveis coletivas, Seed e PCT (porcentagem de vitórias) estão dentre as 6 variáveis mais impactantes (2ª e 6ª, respectivamente)
  • 7 das 11 variáveis mais importantes são estatísticas avançadas
  • Das três principais estatísticas comuns (pontos, rebotes e assistências por jogo), apenas pontos por jogo aparece na lista, em 16º lugar

É interessante observar a predominância das estatísticas avançadas sobre as estatísticas comuns, pois elas separam muito melhor o bom desempenho dos jogadores, independentemente da posição em que atuam.

Por exemplo, um pivô tende a ter uma média de rebotes muito maior que um armador, que por sua vez tende a ter uma média de assistências muito maior. Logo, o modelo não consegue distinguir tão bem um jogador MVP apenas com essas variáveis.

A Win Share por exemplo, que é uma estatística que busca mensurar o crédito de cada jogador nas vitórias do time, se mostra muito mais eficaz nesse sentido (a maneira como essa estatística é calculada pode ser encontrada aqui).

O PER, Player Efficiency Rating, é a variável mais impactante do modelo. Ele é um número que busca evidenciar a produtividade por minuto de um jogador, e é uma das melhores estatísticas que há hoje. Podemos ver que o modelo valorizou bastante jogadores com PER alto, nos pontos vermelhos à direita. Mais detalhes dos procedimentos de cálculo podem ser encontrados aqui.

Outro ponto interessante é a relação encontrada pelo modelo nos desperdícios, TOV (turnovers). Intuitivamente, imaginamos que um jogador com alto número de turnovers por jogo tenderia a ter menor chance de ser MVP, certo?

Porém, como um MVP costuma ter muito a bola na mão, seu número de turnovers por jogo tende a ser um número consideravelmente maior que zero, comportamento que foi captado pelo modelo, contrariando o senso comum.

Resultados Adicionais

Uma vez com os parâmetros já otimizados com a temporada mais recente e uma análise das estatísticas mais importantes, o propósito desse estudo foi parcialmente completo, agora aguardando apenas o término da temporada regular de 2022–23 da NBA (em abril/23) para que os modelos possam prever quem será o MVP.

Porém, por que não explorá-los um pouco mais, para ver como eles se saem em temporadas mais antigas?

Resultados obtidos para todas as temporadas desde 2006–07
Resultados obtidos para todas as temporadas desde 2006–07

Em termos de determinação do MVP, é possível ver que os modelos conseguem ter um bom desempenho, com todos acertando 12 dos 16 últimos MVPs, com exceção do Random Forest que acertou apenas 10 de 16.

Também é significativa a queda nas métricas RMSE e R², que tem como uma de suas causas a variação natural dos critérios de escolha do prêmio com o tempo comentada anteriormente.

Média dos valores de RMSE e R² obtidos dentre os diferentes modelos para as últimas 16 temporadas
Média dos valores de RMSE e R² obtidos dentre os diferentes modelos para as últimas 16 temporadas

Em apenas 3 temporadas a maioria dos modelos errou o MVP (menos que 3 acertos): 2016–17, 2010–11 e 2007–08.

Talvez a que mais chame a atenção seja a de 2016–17, onde Russell Westbrook foi o primeiro jogador desde Oscar Robertson em 1961–62 a ter um triplo-duplo de média, liderando o OKC aos playoffs após a saída de Kevin Durant. Não se discute que o prêmio deveria ter sido dele, mas os modelos escolheram LeBron James, Kawhi Leonard e James Harden, com apenas um acertando Westbrook como MVP. Um dos fatores para isso pode ser a baixa colocação do time (10º na liga), que como vimos é uma das variáveis mais impactantes no resultado.

O mesmo aconteceu com Derrick Rose em 2010–11, mas dessa vez os quatro modelos que erraram convergiram em LeBron James para ganhar o prêmio.

Kobe Bryant em 2007–08 foi a única temporada em que nenhum modelo acertou o MVP: escolheram novamente LeBron.

Acredito que isso diz muito mais sobre LeBron do que sobre os outros jogadores. Mostra que seguindo os mesmos critérios de jogador mais valioso, ele sempre está na disputa, e provavelmente deveria ter ganho o prêmio mais vezes.

(Photo by Howard Bouchevereau on Unsplash)

Conclusões

O que era para ser apenas uma criação de modelo para predição do próximo MVP se tornou um estudo muito interessante sobre a própria definição e história do prêmio. Espero que ele tenha sido útil e possa ter ajudado a melhorar o entendimento sobre o prêmio e sobre as ferramentas de Machine Learning utilizadas.

Fazer previsões sobre esportes é sempre uma tarefa difícil. Contudo, os resultados foram muito satisfatórios, e os modelos utilizados se mostraram eficazes para a predição do MVP, com destaque para o SVM, com melhor desempenho na temporada mais recente, e o Gradient Boosting, com melhor desempenho nas temporadas mais antigas.

Vale destacar que sempre há espaço para melhora. Por exemplo, mais variáveis poderiam ser adicionadas, como temporadas de experiência na NBA, número de escolha do draft e informações físicas (altura, peso, envergadura). Uma marcação com o número de MVP já ganhos, por exemplo, poderia ajudar a questão de voter fatigue observada.

Mais uma vez, todo o código e as bases utilizadas estão disponíveis no GitHub.

Em abril de 2023, teremos atualizações do modelo com dados totalmente novos.

Será que irá acertar o MVP? Veremos…

(Photo by JC Gellidon on Unsplash)

Estou sempre à disposição nos meus canais (LinkedIn e GitHub).

Obrigado pela atenção!👏

Gabriel Speranza Pastorello

--

--