0Pricing
Learn AI with Python · Leçon

Gradient boosting : GBM et XGBoost

Boosting contre bagging, GradientBoostingClassifier, XGBClassifier et arrêt anticipé.

Gradient boosting : GBM et XGBoost est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Amplification ou agrégation par bootstrap

L’agrégation par bootstrap entraîne les arbres en parallèle et en fait la moyenne. L’amplification entraîne les arbres séquentiellement : chaque nouvel arbre corrige les erreurs des précédents.

L’amplification réduit le biais et donne souvent une meilleure exactitude que l’agrégation par bootstrap sur les données structurées.

Apprenants faibles séquentiels

L’amplification par gradient construit un ensemble d’arbres peu profonds (apprenants faibles). Chaque arbre s’ajuste aux résidus (les gradients de la fonction de perte) laissés par l’ensemble actuel.

L’ajout de nombreuses petites corrections permet de construire un modèle global robuste.

GradientBoostingClassifier

Scikit-learn fournit GradientBoostingClassifier. Les principaux paramètres sont n_estimators (nombre d’arbres), learning_rate (réduction de l’amplitude) et max_depth (taille des arbres).

from sklearn.ensemble import GradientBoostingClassifier

gbm = GradientBoostingClassifier(
    n_estimators=200,
    learning_rate=0.1,
    max_depth=3,
    random_state=0,
)
gbm.fit(Xtr, ytr)
print(gbm.score(Xte, yte))

Le compromis du taux d’apprentissage

learning_rate redimensionne la contribution de chaque arbre. Un taux d’apprentissage plus faible nécessite davantage d’arbres, mais se généralise généralement mieux.

Une stratégie courante consiste à définir un faible taux d’apprentissage (par exemple 0.05) et de nombreux estimateurs, puis à utiliser l’arrêt anticipé.

from sklearn.ensemble import GradientBoostingClassifier

gbm = GradientBoostingClassifier(
    n_estimators=1000,
    learning_rate=0.05,
    max_depth=3,
)

Pourquoi la profondeur maximale reste faible

Dans l’amplification, chaque arbre est un apprenant faible ; max_depth vaut donc généralement entre 3 et 6. Des arbres profonds surajusteraient rapidement les résidus. L’ensemble gagne en puissance grâce à de nombreux arbres peu profonds, et non à quelques arbres profonds.

Présentation de XGBoost

XGBoost est une bibliothèque d’amplification par gradient optimisée : elle est plus rapide, régularisée et gère les valeurs manquantes intégrées. Elle figure parmi les meilleures solutions dans les concours d’apprentissage automatique sur données tabulaires.

from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=300,
    learning_rate=0.1,
    max_depth=4,
    random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Principaux paramètres de XGBoost

Les principaux réglages reprennent ceux de GBM :

  • n_estimators nombre d’itérations d’amplification
  • learning_rate réduction par itération
  • max_depth profondeur des arbres
  • subsample et colsample_bytree ajoutent de l’aléatoire pour régulariser
from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=500,
    learning_rate=0.05,
    max_depth=4,
    subsample=0.8,
    colsample_bytree=0.8,
)

Régularisation dans XGBoost

XGBoost ajoute des pénalités L1 (reg_alpha) et L2 (reg_lambda), ainsi que gamma (réduction minimale de la perte nécessaire pour effectuer une division). Ces paramètres contrôlent la complexité et réduisent le surajustement davantage que le GBM classique.

from xgboost import XGBClassifier

model = XGBClassifier(
    reg_alpha=0.1,
    reg_lambda=1.0,
    gamma=0.1,
)

Arrêt anticipé

early_stopping_rounds arrête l’entraînement lorsque la métrique de validation cesse de s’améliorer pendant N itérations. Cela permet de trouver automatiquement le nombre d’arbres approprié et d’éviter le surajustement.

from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=2000,
    learning_rate=0.05,
    early_stopping_rounds=50,
    eval_metric="logloss",
)
model.fit(Xtr, ytr, eval_set=[(Xte, yte)], verbose=False)
print("Best iteration:", model.best_iteration)

Lire l’importance des caractéristiques

XGBoost fournit feature_importances_ ainsi qu’un get_booster().get_score() plus détaillé, avec des types d’importance comme le gain et le poids. Le gain indique dans quelle mesure une caractéristique a amélioré la perte.

model = XGBClassifier(n_estimators=200).fit(Xtr, ytr)
print(model.feature_importances_)

booster = model.get_booster()
print(booster.get_score(importance_type="gain"))

Quand utiliser l’amplification

L’amplification par gradient surpasse souvent les forêts aléatoires sur les données tabulaires lorsqu’elle est bien réglée. En contrepartie, elle est plus sensible aux hyperparamètres et son entraînement séquentiel est plus lent. Commencez par les réglages par défaut de XGBoost, puis ajustez learning_rate et max_depth, et utilisez l’arrêt anticipé.

Vérification rapide

Vérifiez vos connaissances sur l’amplification.

Récapitulatif

Récapitulatif : l’amplification entraîne les arbres séquentiellement, chacun corrigeant les erreurs précédentes. Ajustez n_estimators, learning_rate (faible taux et nombreux arbres) ainsi qu’une faible valeur de max_depth. XGBoost ajoute la régularisation (reg_alpha, reg_lambda, gamma) et early_stopping_rounds pour choisir automatiquement le nombre optimal d’arbres.

Questions Fréquemment Posées

La leçon « Gradient boosting : GBM et XGBoost » est-elle gratuite ?

Oui — le texte complet de « Gradient boosting : GBM et XGBoost » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Gradient boosting : GBM et XGBoost » ?

Boosting contre bagging, GradientBoostingClassifier, XGBClassifier et arrêt anticipé. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Gradient boosting : GBM et XGBoost » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Arbres de décision : théorie et implémentation
  2. Forêts aléatoires et bagging
  3. Gradient boosting : GBM et XGBoost
  4. LightGBM et CatBoost
← Retour à Learn AI with Python