LightGBM et CatBoost
Pourquoi LightGBM est plus rapide, partitionnement fondé sur des histogrammes et CatBoost pour les caractéristiques catégorielles.
LightGBM et CatBoost est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 4 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.
Au-delà de XGBoost
XGBoost est puissant, mais peut être lent sur de très grands ensembles de données. LightGBM et CatBoost sont des bibliothèques plus récentes d’amplification par gradient, qui améliorent la vitesse et gèrent plus élégamment les données catégorielles.
Découpage fondé sur un histogramme
LightGBM regroupe les caractéristiques continues dans des intervalles discrets (un histogramme) avant de rechercher les divisions. La recherche des divisions est ainsi beaucoup plus rapide et utilise moins de mémoire qu’avec la méthode exacte.
Croissance des arbres feuille par feuille
Contrairement à la croissance niveau par niveau, LightGBM fait croître les arbres feuille par feuille : il divise d’abord la feuille dont la réduction de la perte est la plus importante. La convergence est plus rapide, mais le surajustement est possible ; vous le contrôlez avec num_leaves.
LGBMClassifier et le nombre de feuilles
num_leaves est le paramètre de complexité le plus important de LightGBM. Des valeurs plus élevées améliorent l’exactitude, mais augmentent le risque de surajustement. Une règle générale consiste à respecter num_leaves < 2^max_depth.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=300,
num_leaves=31,
learning_rate=0.05,
random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))Avantages de LightGBM en matière de vitesse
Grâce au regroupement en histogrammes, à la croissance feuille par feuille et au sous-échantillonnage des caractéristiques et des données, LightGBM s’entraîne nettement plus rapidement que XGBoost sur les grands ensembles de données, avec une exactitude souvent comparable.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=1000,
num_leaves=63,
learning_rate=0.03,
feature_fraction=0.8,
bagging_fraction=0.8,
)Arrêt anticipé dans LightGBM
LightGBM prend en charge l’arrêt anticipé au moyen de fonctions de rappel. Transmettez un ensemble d’évaluation et une fonction de rappel early_stopping pour arrêter l’entraînement lorsque la métrique plafonne.
import lightgbm as lgb
from lightgbm import LGBMClassifier
model = LGBMClassifier(n_estimators=2000, learning_rate=0.03)
model.fit(
Xtr, ytr,
eval_set=[(Xte, yte)],
callbacks=[lgb.early_stopping(50)],
)CatBoost et les caractéristiques catégorielles
CatBoost excelle avec les données catégorielles. Vous transmettez directement les colonnes catégorielles brutes via cat_features, sans encodage manuel.
Il utilise en interne des statistiques ordonnées de la cible afin d’éviter la fuite de la cible.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=500,
learning_rate=0.05,
depth=6,
verbose=False,
)
model.fit(Xtr, ytr, cat_features=[0, 3, 5])Pourquoi se passer d’encodage est avantageux
Avec les autres bibliothèques, vous devez encoder les catégories à l’aide d’indicateurs ou d’étiquettes, ce qui peut faire exploser la dimensionnalité ou provoquer une fuite de la cible. CatBoost gère cela en interne avec une amplification ordonnée, ce qui réduit le surajustement des caractéristiques catégorielles.
Principaux paramètres de CatBoost
CatBoost utilise iterations (comme le nombre d’estimateurs), learning_rate et depth (il construit des arbres symétriques). Il fonctionne souvent bien avec un réglage minimal.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=1000,
learning_rate=0.03,
depth=8,
l2_leaf_reg=3.0,
verbose=100,
)Comparaison des vitesses
Conseils généraux :
- LightGBM est généralement le plus rapide sur les grands ensembles de données numériques
- CatBoost est le meilleur choix lorsque les caractéristiques catégorielles sont nombreuses et nécessite moins de réglages
- XGBoost est mature, robuste et possède d’excellents réglages par défaut
Évaluez les trois sur vos données ; les résultats varient selon le problème.
Choisir une bibliothèque
Si vos données comportent beaucoup de catégories, commencez par CatBoost. Pour de très grandes tables numériques et pour privilégier la vitesse, choisissez LightGBM. Pour une référence éprouvée, choisissez XGBoost. Tous trois reposent sur l’amplification par gradient, les concepts sont donc transférables.
Vérification rapide
Testez vos connaissances sur les bibliothèques d’amplification par gradient.
Récapitulatif
Récapitulatif : LightGBM utilise une croissance fondée sur les histogrammes et feuille par feuille, contrôlée par num_leaves, pour accélérer le traitement des grandes données numériques. CatBoost gère nativement les caractéristiques catégorielles via cat_features, sans encodage. Tous deux, comme XGBoost, sont des variantes de l’amplification par gradient. Comparez-les pour choisir ; CatBoost convient aux données catégorielles et LightGBM à la recherche de vitesse.
Questions Fréquemment Posées
La leçon « LightGBM et CatBoost » est-elle gratuite ?
Oui — le texte complet de « LightGBM et CatBoost » 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 « LightGBM et CatBoost » ?
Pourquoi LightGBM est plus rapide, partitionnement fondé sur des histogrammes et CatBoost pour les caractéristiques catégorielles. 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 4 sur 4.
Combien de temps prend la leçon « LightGBM et CatBoost » ?
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
- Arbres de décision : théorie et implémentation
- Forêts aléatoires et bagging
- Gradient boosting : GBM et XGBoost
- LightGBM et CatBoost