Gradient Boosting — Classification

XGBoost/LightGBM sur Breast Cancer Dataset

Abdallah Khemais

Partie 5 : Gradient Boosting — Classification

📋 Exercice 5.1 : Présentation du Problème

Dataset : Breast Cancer Wisconsin

  • Tâche : Prédire si une tumeur est Maligne (1) ou Bénigne (0)
  • Features : 30 mesures cliniques (rayon, texture, périmètre…)
  • Taille : 569 patients — 357 bénignes / 212 malignes

Fonction de perte en classification binaire

\[l(y, \hat{p}) = -\left[y \log(\hat{p}) + (1 - y)\log(1 - \hat{p})\right]\]

  • \(y \in \{0, 1\}\) : vraie classe
  • \(\hat{p} = \sigma(f(x)) \in (0,1)\) : probabilité prédite via sigmoïde
  • Le boosting minimise itérativement cette log-loss

Prédiction finale

\[\hat{p}(x) = \sigma\!\left(\sum_{i=1}^{N} \eta \cdot f_i(x)\right) = \frac{1}{1 + e^{-\sum \eta f_i(x)}}\]

📊 Exploration du Dataset

🌲 Q1 — Random Forest vs Gradient Boosting en Classification

Random Forest (Bagging) 🌳🌳🌳

\[\hat{p}(x) = \frac{1}{N}\sum_{i=1}^{N} p_i(x)\]

  • N arbres indépendants entraînés en parallèle
  • Chaque arbre vote : probabilité moyenne des classes
  • Réduit la variance → stable, difficile à overfitter

Gradient Boosting ⚡

\[\hat{p}(x) = \sigma\!\left(\sum_{i=1}^{N} \eta \cdot f_i(x)\right)\]

  • N arbres séquentiels : chaque arbre corrige les résidus du précédent
  • Les résidus en classification = gradients de la log-loss
  • Réduit le biais → plus précis mais plus sensible à l’overfitting

🌲 Comparaison RF vs GB — Classification

⚠️ Q2 — Pourquoi GB overfitte plus en Classification ?

1️⃣ Résidus = Gradients de la Log-Loss

\[r_i^{(m)} = -\frac{\partial l(y_i, \hat{p}_i)}{\partial \hat{p}_i} = y_i - \hat{p}_i^{(m-1)}\]

Chaque arbre apprend ces résidus — si les données sont bruitées, il mémorise le bruit.

2️⃣ Accumulation séquentielle

\[F_m(x) = F_{m-1}(x) + \eta \cdot f_m(x)\]

Une erreur à l’étape \(m\) se propage à toutes les étapes suivantes.

3️⃣ Pas de lissage

  • RF : la moyenne des probabilités lisse les erreurs individuelles ✅
  • GB : la somme des résidus les accumule

⚠️ Illustration — Overfitting en Classification

🛡️ Solutions contre l’Overfitting

1. Learning Rate faible : \(\eta \in [0.01, 0.1]\)

\[F_m = F_{m-1} + \eta \cdot f_m \quad \text{avec } \eta \text{ petit}\]

2. Early Stopping : Surveiller la log-loss sur le validation set

3. Subsampling : Utiliser une fraction des données par arbre (subsample=0.8)

4. Max Depth : Limiter à 3–5 pour la classification binaire

5. Régularisation L1/L2 : Pénaliser les poids des feuilles

🎛️ Q3 — Top 3 Hyperparamètres pour la Classification

1️⃣ learning_rate (η) — LE PLUS CRITIQUE

\[F_m = F_{m-1} + \boxed{\eta} \cdot f_m\]

η petit (0.01–0.1)

  • Convergence lente, précise
  • Nécessite plus d’arbres
  • Probabilités mieux calibrées

η grand (0.3–1.0)

  • Convergence rapide
  • Probabilités mal calibrées
  • Overfitting rapide

2️⃣ n_estimators — avec Early Stopping sur log-loss

3️⃣ max_depth — 3 à 5 recommandé en classification binaire

🎛️ Impact des Hyperparamètres — Classification

📊 Évaluation Finale — Métriques de Classification

📚 Formules Mathématiques Clés — Classification

Fonction Objectif XGBoost (Classification)

\[\mathcal{L}^{(t)} = \sum_{i=1}^{n} \left[-y_i \log \hat{p}_i^{(t)} - (1-y_i)\log(1-\hat{p}_i^{(t)})\right] + \Omega(f_t)\]

Résidu (pseudo-gradient) : \[r_i^{(m)} = y_i - \hat{p}_i^{(m-1)}\]

Régularisation : \[\Omega(f_t) = \gamma T + \frac{1}{2}\lambda \sum_{j=1}^{T} w_j^2\]

Métriques d’évaluation adaptées à la classification

  • Accuracy : proportion de bonnes prédictions
  • AUC-ROC : capacité à séparer les classes → recommandée si classes déséquilibrées
  • Log-Loss : à utiliser pour l’early stopping (minimiser)

❓ Des questions ?

Merci pour votre attention !

📧 Contact : abdallah.khemais@example.com

📚 Ressources : GitHub/TP-Classification