Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 25/12 : 1 commande de contenus en ligne
= 1 chance de gagner un cadeau*. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
  1. Livres et vidéos
  2. Gradient Boosting
  3. XGBoost, LightGBM ou CatBoost ?
Extrait - Gradient Boosting Exploitez les arbres de décision pour le Machine Learning (XGBoost, CatBoost, LightGBM)
Extraits du livre
Gradient Boosting Exploitez les arbres de décision pour le Machine Learning (XGBoost, CatBoost, LightGBM)
1 avis
Revenir à la page d'achat du livre

XGBoost, LightGBM ou CatBoost ?

Pourquoi choisir ?

1. Motivations

Dans le monde de l’open source, il existe trois grandes librairies permettant d’entraîner des arbres de décision en appliquant la méthode du Gradient Boosting. 

Toutes trois sont très performantes, et ce aussi bien sur le plan de la précision obtenue par les modèles générés que des temps d’entraînement.

Cependant, malgré leur excellence commune, elles ne sont pas équivalentes et ont toutes leurs avantages et inconvénients sur des points bien spécifiques.

Ce chapitre va se pencher en profondeur sur chacune des différences entre ces trois conceptions. Cette analyse comparée se fera sous le prisme des différentes réponses apportées par chacune d’entre elles aux grandes questions qui se posent lors de l’implémentation d’une approche de type Gradient Boosting.

2. De la théorie à la pratique

Le chapitre sur les fondements mathématiques de méthodes de Gradient Boosting pour l’entraînement d’ensembles d’arbres de décision a exposé les grands principes théoriques.

XGBoost, LightGBM et CatBoost se distinguent les unes des autres sur les façons de passer de la théorie à la pratique.

Les sous-sections suivantes présentent les points où il y a matière à proposer des solutions techniques différentes et où chaque librairie rivalise de créativité.

Les paragraphes suivants exposent les différents points théoriques où plusieurs solutions techniques sont envisageables.

a. Sélection de la feature et du critère de décision

La première question à laquelle doit se confronter un code implémentant...

XGBoost

À tout seigneur, tout honneur. Cette comparaison entre XGBoost, LightGBM et CatBoost s’ouvre avec XGBoost. C’est la librairie tirant parti des méthodes de Gradient Boosting pour entraîner des ensembles d’arbres de décision la plus connue.

Au moment de la rédaction de cet ouvrage, XGBoost ne comptait pas moins de 22 000 étoiles sur GitHub, la plateforme de partage de code open source. C’est un très bon indicateur de la valeur d’une librairie.

Ce chiffre est à comparer à ceux obtenus par LightGBM et CatBoost, qui plafonnent respectivement à 13 000 et 6 000 étoiles.

Dans le même esprit, et cela était rappelé en introduction de cet ouvrage, XGBoost arrive en tête du classement des algorithmes qui remportent les contests de la plateforme de Data Science Kaggle, et ce dans la catégorie des problèmes avec des données structurées.

Les raisons de ce succès se trouvent dans les options prises par XGBoost pour implémenter le Gradient Boosting.

1. Partis pris

a. Sélection de la feature et du critère de décision

Dans le chapitre Comprendre et expliquer un modèle, dans la partie consacrée à la méthode SHAP et au calcul des valeurs de Shapley, le code utilisé pour entraîner un ensemble d’arbres de décision reprend la technique utilisée par XGBoost.

L’approche mise en œuvre pour retenir la feature et le seuil de décision les plus pertinents consiste à explorer de manière exhaustive toutes les possibilités.

Pour ce faire, pour chaque feature, les échantillons de données du dataset d’entraînement sont triés par ordre croissant, selon la feature. Le gain est alors évalué systématiquement pour chacun des seuils de séparation possible.

Le seuil apportant le plus de gain pour une feature est retenu comme le meilleur, et la feature apportant le plus de gain est retenue comme la meilleure. 

Cette méthode implique donc un tri pour chaque feature, et un calcul du gain pour chaque critère de séparation. En conséquence, c’est une approche gourmande en temps de calcul, et qui n’est applicable que pour des datasets de taille raisonnable.

Pour...

LightGBM

1. Partis pris

a. Sélection de la feature et du critère de décision

LightGBM se distingue d’XGBoost par la façon dont les seuils de décision sont calculés, même si dans la section précédente il a été détaillé qu’il est possible d’utiliser une méthode similaire.

Contrairement au mode de fonctionnement par défaut de XGBoost, LightGBM se simplifie la tâche, en n’évaluant pas les gains associés à tous les seuils de décision possibles pour une feature.

À la place, elle construit un histogramme de n bins dans lesquels sont répartis les échantillons rattachés à un nœud. L’algorithme évalue alors autant de seuils de décision qu’il y a de bins.

Le nombre maximal de bins est contrôlé par l’hyperparamètre max_bin et vaut par défaut 255.

Ce chiffre est à comparer aux dizaines ou centaines de milliers de lignes qui peuvent se trouver dans un dataset d’entraînement, et pour lesquelles la méthode exacte de XGBoost va évaluer le gain associé au seuil qui s’y rattache.

Le gain en temps de calcul est donc considérable, même s’il faut se rappeler qu’il se fait au détriment de la précision.

Une autre option offerte par LightGBM est la méthode GOSS, qui travaille sur un sous-échantillon des données. Ce sont celles pour lesquelles le gradient est le plus élevé.

b. Support des features catégorielles

Contrairement à XGBoost, LightGBM supporte nativement les features catégorielles.

Pour ce faire, elle utilise une alternative au one hot encoding : l’integer encoding. Le principe de cette méthode est tout simplement d’associer de manière arbitraire un entier à une catégorie.

Le type de la feature passant d’une chaîne de caractères à un entier, il devient possible de faire des comparaisons, et donc d’alimenter un nœud de décision.

Pour...

CatBoost

CatBoost est le challenger des trois librairies présentées ici. Moins utilisée que les deux premières, elle bénéficie de caractéristiques qui la rendent pertinente dans certaines situations.

Ses concepteurs revendiquent en particulier une simplicité d’utilisation qui ne se fait pas au détriment des performances. Utiliser la librairie telle quelle, sans changer les paramètres par défaut, doit conduire à la génération d’un modèle avec de bonnes performances. Le support natif des features catégorielles n’est pas étranger à cette facilité de mise en œuvre.

1. Partis pris

a. Sélection de la feature et du critère de décision

CatBoost utilise une méthode qui lui est propre pour choisir le couple feature/seuil de décision le plus pertinent lors de l’ajout d’un nœud à un arbre de décision. 

Ils nomment cette méthode quantization, et elle consiste essentiellement à distribuer les échantillons dans des buckets. C’est une façon de procéder similaire à celle de LightGBM.

b. Support des features catégorielles

Par défaut, et si le nombre de features n’est pas trop conséquent, CatBoost utilise le one hot encoding pour intégrer les features catégorielles dans son entraînement, dans le cas d’une classification.

S’il s’agit d’une régression, dans ce cas les données...