📌 Construction du 2ème Arbre dans LightGBM (Calculs Détaillés)
LightGBM (Light Gradient Boosting Machine) est un algorithme basé sur Gradient Boosting, similaire
à XGBoost, mais avec des différences clés :
Histogram-based Learning : Il construit les arbres plus rapidement en regroupant les valeurs
en histogrammes.
Leaf-wise Growth (Best-first) : Contrairement à XGBoost qui utilise une croissance level-wise,
LightGBM divise la feuille avec le plus grand gain.
Nous allons détailler comment construire le 2ème arbre dans LightGBM.
🔹 Données & 1ère Itération
yy (valeur y^(1)\hat{y}^{(1)} (prédiction 1er Résidu r(1)=y−y^(1)r^{(1)} = y - \
xx
réelle) arbre) hat{y}^{(1)}
1 5 3.2 +1.8
2 8 7.1 +0.9
3 6 5.1 +0.9
🔹 Étape 1 : Calcul des Gradients et Hessiennes
LightGBM utilise aussi le gradient et la hessienne pour ajuster les arbres :
Gradient gig_i : gi=∂L∂y^ig_i = \frac{\partial L}{\partial \hat{y}_i}
Hessienne hih_i : hi=∂2L∂y^i2h_i = \frac{\partial^2 L}{\partial \hat{y}_i^2}
Pour une perte quadratique L=12(y−y^)2L = \frac{1}{2} (y - \hat{y})^2 :
gi=y^i−yi,hi=1g_i = \hat{y}_i - y_i, \quad h_i = 1
xx yy y^(1)\hat{y}^{(1)} gi=y^−yg_i = \hat{y} - y hih_i
1 5 3.2 -1.8 1
2 8 7.1 -0.9 1
3 6 5.1 -0.9 1
🔹 Étape 2 : Construction de l'Histogramme pour LightGBM
LightGBM regroupe les valeurs en bins (intervalles de valeurs).
Supposons que LightGBM divise les valeurs de xx en 2 bins :
xx Bin
1 0
xx Bin
2 1
3 1
LightGBM agrège ensuite les gradients et hessiennes par bin :
Bin GG (somme des gradients) HH (somme des hessiennes)
0 -1.8 1
1 -0.9 - 0.9 = -1.8 1+1=2
🔹 Étape 3 : Calcul du Gain pour le Split
Le gain du split est donné par :
Gain=12(GL2HL+λ+GR2HR+λ−G2H+λ)−γ\text{Gain} = \frac{1}{2} \left( \frac{G_L^2}{H_L + \lambda} + \
frac{G_R^2}{H_R + \lambda} - \frac{G^2}{H + \lambda} \right) - \gamma
Noeud gauche (bin 0) : GL=−1.8,HL=1G_L = -1.8, H_L = 1
Noeud droit (bin 1) : GR=−1.8,HR=2G_R = -1.8, H_R = 2
Total : G=−3.6,H=3G = -3.6, H = 3
Gain=12((−1.8)21+1+(−1.8)22+1−(−3.6)23+1)\text{Gain} = \frac{1}{2} \left( \frac{(-1.8)^2}{1+1} + \
frac{(-1.8)^2}{2+1} - \frac{(-3.6)^2}{3+1} \right) =12(3.242+3.243−12.964)= \frac{1}{2} \left( \
frac{3.24}{2} + \frac{3.24}{3} - \frac{12.96}{4} \right) =12(1.62+1.08−3.24)=−0.27= \frac{1}{2} \
left( 1.62 + 1.08 - 3.24 \right) = -0.27
🚨 Si le gain est négatif ou faible, LightGBM ajuste le seuil de régularisation.
🔹 Étape 4 : Mise à Jour des Prédictions avec le Learning Rate η=0.1\eta = 0.1
Les nouvelles valeurs des feuilles sont calculées comme suit :
wj=−GjHj+λw_j = -\frac{G_j}{H_j + \lambda}
✅ Feuille 1 (bin 0) wL=−−1.81+1=0.9w_L = -\frac{-1.8}{1 + 1} = 0.9
✅ Feuille 2 (bin 1) wR=−−1.82+1=0.6w_R = -\frac{-1.8}{2 + 1} = 0.6
On met à jour les prédictions :
y^(2)=y^(1)+ηw\hat{y}^{(2)} = \hat{y}^{(1)} + \eta w
ww (sortie du 2ème y^(2)=y^(1)+0.1×w\hat{y}^{(2)} = \hat{y}^{(1)} + 0.1 \
xx y^(1)\hat{y}^{(1)}
arbre) times w
1 3.2 0.9 3.2 + 0.1 × 0.9 = 3.29
2 7.1 0.6 7.1 + 0.1 × 0.6 = 7.16
3 5.1 0.6 5.1 + 0.1 × 0.6 = 5.16
ww (sortie du 2ème y^(2)=y^(1)+0.1×w\hat{y}^{(2)} = \hat{y}^{(1)} + 0.1 \
xx y^(1)\hat{y}^{(1)}
arbre) times w
🔹 Étape 5 : Nouveaux Résidus pour la 3ème Itération
r(2)=y−y^(2)r^{(2)} = y - \hat{y}^{(2)}
xx yy y^(2)\hat{y}^{(2)} r(2)=y−y^(2)r^{(2)} = y - \hat{y}^{(2)}
1 5 3.29 +1.71
2 8 7.16 +0.84
3 6 5.16 +0.84
➡ Ces résidus deviennent la nouvelle cible pour le 3ème arbre.
🔹 Différence XGBoost vs LightGBM
Critère XGBoost LightGBM
Level-wise (profondeur
Croissance Leaf-wise (division des feuilles avec max gain)
équilibrée)
Basé sur la valeur exacte des
Split Basé sur des bins d’histogramme (optimisé)
features
Performance Plus lent mais robuste Plus rapide (surtout sur grands datasets)
L1, L2, Pruning + Handling efficace des valeurs
Régularisation L1, L2, Pruning
manquantes
👉 Conclusion
LightGBM est plus rapide que XGBoost et meilleur sur les grands datasets (> 1M lignes).
Si ton dataset a 250 000 lignes, LightGBM est un excellent choix ! 🚀
👉 Tu veux voir une 3ème itération ou tester un autre exemple ? 😊