Skip to content

XGBoost : la puissance des algorithmes d'apprentissage automatique

Updated on

L'apprentissage automatique regorge d'algorithmes puissants, mais peu ont eu un impact aussi transformateur que le renforcement de gradient extrême, communément appelé XGBoost. Plongeons dans le monde de XGBoost et démêlons ses mystères.

Vous souhaitez créer rapidement une visualisation de données à partir d'un dataframe Python Pandas sans code ?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire de données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse et de visualisation de données dans le notebook Jupyter, en transformant votre dataframe pandas (et le dataframe polars) en une interface utilisateur de style Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation de données (opens in a new tab)

Qu'est-ce que XGBoost ?

XGBoost (opens in a new tab) (Extreme Gradient Boosting) est une bibliothèque optimisée de renforcement de gradient distribué, conçue pour être hautement efficace, flexible et portable. XGBoost fournit un renforcement d'arbre parallèle (également connu sous le nom de GBDT, GBM) qui résout de nombreux problèmes de science des données de manière rapide et précise. Le nom XGBoost, en réalité, fait référence à l'objectif d'ingénierie de repousser les limites des ressources de calcul pour les algorithmes d'arbres renforcés. Par conséquent, le "X" dans le nom signifie "Extrême".

Qu'est-ce que XGB ?

XGB est simplement un autre terme pour XGBoost, utilisé indifféremment dans le monde de la science des données. Il signifie eXtreme Gradient Boosting et représente le même algorithme d'apprentissage automatique. XGBoost (Extreme Gradient Boosting) est une implémentation robuste et sophistiquée de l'algorithme de renforcement de gradient. Il s'appuie sur le principe de renforcement de faibles apprenants en utilisant l'architecture de descente de gradient. XGBoost se distingue particulièrement par sa capacité à s'adapter à toutes les situations.

L'algorithme XGBoost est également incroyablement polyvalent. En plus de la régression, de la classification binaire et du classement, il prend également en charge des fonctions objectif définies par l'utilisateur qui peuvent être utilisées pour résoudre des problèmes de classification multiclasse.

Comment fonctionne XGBoost ?

La magie de XGBoost réside dans sa mise en œuvre d'algorithmes de renforcement de gradient. Ces algorithmes fonctionnent en combinant les prédictions de plusieurs modèles plus simples, également appelés "faibles apprenants", pour créer un "fort apprenant" plus précis et robuste. XGBoost emploie spécifiquement des arbres de décision comme faibles apprenants.

Voici une explication simplifiée étape par étape de XGBoost :

  1. Au départ, XGBoost construit un modèle simple (un arbre), en effectuant des prédictions sur les données d'entraînement.
  2. Il calcule ensuite les erreurs de ces prédictions par rapport aux valeurs réelles.
  3. XGBoost construit un autre arbre pour prédire et corriger ces erreurs.
  4. Le processus se répète, chaque nouvel arbre étant construit pour corriger les erreurs du précédent. Cela s'appelle "le renforcement".
  5. Enfin, les prédictions de tous les arbres sont additionnées pour effectuer les prédictions finales.

Le "gradient" dans le renforcement de gradient fait référence à l'utilisation par l'algorithme de descente de gradient, une technique d'optimisation numérique, pour minimiser les erreurs du modèle. Cela confère à XGBoost sa puissance et sa flexibilité, lui permettant d'optimiser une variété de fonctions de perte définies par l'utilisateur et de gérer un large éventail de problèmes de régression et de classification.

XGBoost Prédictor et Régression

XGBoost brille à la fois dans les tâches de classification, où l'objectif est de prédire un résultat catégorique, et dans les tâches de régression, où nous prévoyons un résultat continu. Un prédictor XGBoost est le modèle final qui effectue des prédictions basées sur la combinaison apprise des faibles apprenants.

Pour illustrer, considérons un exemple simple de régression XGBoost en Python :

import xgboost as xgb
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
 
# Charger les données
boston = load_boston()
X, y = boston.data, boston.target
 
# Diviser les données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)
 
# Initialiser et ajuster le modèle
xg_reg = xgb.XGBRegressor(objective ='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1, max_depth = 5, alpha = 10, n_estimators = 10)
xg_reg.fit(X_train, y_train)
 
# Prédictions
preds = xg_reg.predict(X_test)
 
# Calcul du RMSE
rmse = np.sqrt(mean_squared_error(y_test, preds))
print("RMSE : %f" % (rmse))

Ce code illustre comment XGBoost peut être utilisé pour des tâches de régression. La flexibilité de XGBoost s'étend à divers domaines et en a fait un outil puissant dans la boîte à outils des scientifiques des données.

Explication approfondie de XGBoost

Dans le contexte de l'apprentissage automatique, une question courante qui se pose est "comment fonctionne XGBoost ?" Pour comprendre cela, il est crucial de réaliser que XGBoost est basé sur le cadre du renforcement. Le renforcement est une technique de modélisation où de nouveaux modèles sont ajoutés pour corriger les erreurs commises par les modèles existants.

L'idée clé derrière XGBoost est que nous pouvons utiliser le cadre de renforcement au cœur d'AdaBoost et l'appliquer à n'importe quelle fonction de perte différentiable. Cela rend XGBoost applicable à un large éventail de problèmes de régression et de classification. L'avantage principal de XGBoost est sa vitesse d'exécution supérieure et ses performances de modélisation. Il possède également une régularisation intégrée qui aide à prévenir le surajustement. XGBoost est également capable de gérer les valeurs manquantes et offre différentes méthodes pour traiter les valeurs aberrantes. Il prend en charge le traitement parallèle et est très flexible et portable. Il peut fonctionner sur Hadoop, AWS, Azure, GCE et de nombreuses autres plates-formes.

Cependant, comme tout autre algorithme, XGBoost présente des faiblesses. Il peut être très intensif en mémoire et la complexité de calcul peut être élevée pour des ensembles de données très volumineux. Il manque également d'interprétabilité comparé à des modèles plus simples tels que la régression linéaire ou les arbres de décision.

Conclusion

En conclusion, XGBoost est un algorithme hautement efficace, flexible et puissant, capable de résoudre de nombreux problèmes d'apprentissage complexes. Le comprendre et savoir comment ajuster ses hyperparamètres peuvent vous rendre encore plus efficace en tant que data scientist.