Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NBA Volutions

La NBA a beaucoup changé ces dernières années. Plus de tirs à 3 points, un rythme de jeu plus élevé, des stats individuelles qui s'envolent... Ce projet est né d'une question simple : est-ce qu'on peut comprendre ces évolutions, et s'en servir pour prédire des performances ?

Il se découpe en deux parties distinctes, mais liées.


Partie 1 — Comprendre l'évolution de la NBA

EDA_NBA_Evolution.ipynb · extraction_seasons.ipynb

Avant de modéliser quoi que ce soit, j'ai voulu prendre du recul sur ce qu'est devenue la NBA ces dernières années. Cette partie est une analyse exploratoire des grandes tendances de la ligue depuis une dizaine de saisons.

Ce qu'on y explore :

  • L'explosion du volume de tirs à 3 points et son impact sur le jeu
  • L'évolution du rythme (possessions par match, pace)
  • L'inflation des stats individuelles (points, assists, etc.)
  • Les différences entre équipes, conférences, époques

C'est une partie essentiellement analytique, appuyée par des visuels explicites. L'objectif est de construire une intuition sur le contexte dans lequel les joueurs évoluent — ce qui sera utile pour interpréter les prédictions ensuite.


Partie 2 — Prédire le score fantasy d'un joueur

glbbref.ipynb · daily_update.py · modelisation_proto.ipynb

Cette partie s'appuie sur les données collectées pour alimenter un pipeline de prédiction de scores fantasy. Le principe du jeu est simple : il faut sélectionner un joueur chaque soir et l'on marque autant de points que sa performance du match. La contrainte principale est qu'un joueur ne peut être utilisé qu'une seule fois dans le mois — ce qui rend le choix quotidien particulièrement stratégique.

Cette partie du projet est un pipeline end-to-end qui tourne au quotidien.

Collecte des données

Scraping de +146 000 box scores joueurs (saisons 2020-21 à 2025-26) depuis Basketball Reference, avec gestion du rate limiting et du contournement Cloudflare.

Feature engineering — 118 features

Toutes les features sont construites sans data leakage (uniquement à partir d'informations disponibles avant le match) :

  • Forme récente du joueur (moyennes glissantes L5 / L10 / L20)
  • Historique du joueur face à l'adversaire du soir
  • Profil défensif de l'équipe adverse
  • Contexte du match (domicile/extérieur, jours de repos, back-to-back, win streak)
  • Profil saison, explosivité, momentum

Modélisation

  • Baseline naïve (moyenne glissante) comme point de comparaison
  • LightGBM (GPU) avec early stopping
  • Optimisation des hyperparamètres (GridSearchCV + TimeSeriesSplit)
  • Métriques : MAE, RMSE, R², analyse des erreurs par profil joueur
  • Feature importance pour comprendre ce qui a de l'importance dans les prédictions

Pipeline quotidien

Chaque matin : scraping automatique des matchs de la veille → recalcul des features → prédiction des scores fantasy pour les matchs du soir.


Stack technique

Python · pandas · LightGBM · scikit-learn · cloudscraper · matplotlib · seaborn


Structure du projet

notebooks/
├── EDA_NBA_Evolution.ipynb          Analyse exploratoire des tendances NBA
├── extraction_seasons.ipynb         Extraction des stats équipes par saison
├── glbbref.ipynb                    Scraping + feature engineering
└── modelisation_proto.ipynb         Entraînement, évaluation, prédictions

scripts/
└── daily_update.py                  Mise à jour quotidienne (données + features)

data/
├── bbref_player_gamelogs_2021_2026.csv   Données brutes (box scores)
├── bbref_gamelogs_featured.csv           Dataset enrichi avec les 118 features
├── bbref_gamelogs_partial.csv            Données partielles intermédiaires
└── nba_team_stats_2000_2025.csv          Stats équipes par saison

models/
├── ttfl_model_lgbm.joblib           Modèle LightGBM entraîné
└── ttfl_model_meta.joblib           Métadonnées du modèle

plots/
└── plot_*.png                       Visualisations issues de l'EDA

Projet réalisé dans le cadre d'un portfolio data scientist junior.

About

Analyse des évolutions de la NBA et pipeline de prédiction de scores fantasy — scraping, feature engineering, LightGBM, mise à jour quotidienne.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages