Aller au contenu principal

Module 7 — Amplification du gradient : XGBoost et LightGBM

Sur les données tabulaires — tableaux, bases, fichiers CSV — l'amplification du gradient est le plus souvent le modèle le plus performant, celui qui remporte les compétitions. Là où la forêt aléatoire moyenne des arbres indépendants, le boosting les construit l'un après l'autre, chacun corrigeant les erreurs du précédent. Une idée différente, des résultats souvent supérieurs.

L'idée : corriger les erreurs, arbre après arbre

Le boosting est séquentiel. On commence par une prédiction grossière, puis on entraîne un petit arbre non pas sur la cible, mais sur les erreurs résiduelles du modèle actuel : ce qu'il n'a pas encore su expliquer. On ajoute cet arbre, ce qui réduit l'erreur, puis on recommence. Chaque nouvel arbre se concentre sur ce qui résiste encore.

Le lien avec le cours de mathématiques est direct : chaque arbre fait un pas de descente de gradient dans l'espace des prédictions, d'où le nom. La prédiction finale est la somme des contributions de tous les arbres — et non leur moyenne comme en forêt.

Bagging contre boosting : la distinction à retenir

Forêt aléatoire (bagging)Amplification du gradient (boosting)
Constructionarbres indépendants, en parallèlearbres séquentiels, chacun corrige
Combinaisonmoyenne / votesomme pondérée
Combat surtoutla variancele biais (puis la variance)
Sur-apprentissagetrès résistantpossible si mal réglé
Réglagefacileplus délicat, mais plus puissant

En un mot : la forêt réduit la variance en moyennant des modèles forts ; le boosting réduit le biais en additionnant des modèles faibles. Le boosting bien réglé dépasse généralement la forêt, au prix d'un réglage plus soigneux.

XGBoost et LightGBM : les implémentations de référence

Trois bibliothèques dominent, toutes très optimisées :

  • XGBoost : la référence historique, robuste et éprouvée.
  • LightGBM : plus rapide, excellent sur les gros volumes, souvent le premier choix aujourd'hui.
  • CatBoost : remarquable pour gérer nativement les variables catégorielles.
from xgboost import XGBClassifier
model = XGBClassifier(
n_estimators=500,
learning_rate=0.05,
max_depth=4,
subsample=0.8,
colsample_bytree=0.8,
).fit(X_train, y_train)

Les hyperparamètres clés

Le boosting exige un réglage réfléchi, autour de quatre leviers :

  • learning_rate (taux d'apprentissage) : la contribution de chaque arbre. Petit = prudent et précis, mais il en faut plus.
  • n_estimators : le nombre d'arbres. Il se règle conjointement avec le taux : petit taux + beaucoup d'arbres est le duo gagnant.
  • max_depth : profondeur de chaque arbre, souvent faible (3 à 6) — ce sont des « apprenants faibles ».
  • subsample / colsample_bytree : n'utiliser qu'une fraction des observations et des variables par arbre, ce qui régularise et accélère.
Le boosting peut surapprendre — surveillez la validation

Contrairement à la forêt, empiler trop d'arbres de boosting dégrade la performance : le modèle finit par apprendre le bruit. La parade standard est l'arrêt anticipé (early stopping) : on surveille l'erreur sur un jeu de validation et on stoppe dès qu'elle cesse de baisser. C'est le réglage le plus important à maîtriser, et une application directe du compromis biais-variance. Réglez toujours le boosting avec un œil sur la courbe de validation, jamais à l'aveugle.

En résumé

  • L'amplification du gradient construit des arbres séquentiels, chacun corrigeant les erreurs résiduelles du précédent — un pas de descente de gradient à chaque étape.
  • Elle combat le biais (là où la forêt combat la variance) et dépasse souvent la forêt, au prix d'un réglage plus fin.
  • XGBoost, LightGBM, CatBoost sont les implémentations de référence, très optimisées.
  • Leviers clés : learning_rate et n_estimators réglés ensemble, max_depth faible, sous-échantillonnage ; l'arrêt anticipé évite le sur-apprentissage.

Module suivant : la validation croisée et la fuite de données — comment mesurer honnêtement la performance et ne pas se mentir sur ce que vaut un modèle.