Article XG Boost

XGBoost, grand gagnant des compétitions

Aurelia Fellous

Aurelia Fellous

2 min

XGBoost signifie eXtreme Gradient Boosting. Comme son nom l’indique, c’est un algorithme de Gradient Boosting. Il est codé en C++ et disponible dans à peu près tous les langages de programmations utiles en Machine Learning, tels que Python, R ou encore Julia.

Qu’est-ce que le Gradient Boosting

Le Gradient Boosting est un algorithme particulier de Boosting. 
Le Boosting consiste à assembler plusieurs « weak learners » pour en faire un « strong learner », c’est-à-dire assembler plusieurs algorithmes ayant une performance peu élevée pour en créer un beaucoup plus efficace et satisfaisant. L’assemblage de « weak learners » en « strong learner » se fait par l’appel successif de ceux-ci pour estimer une variable d’intérêt. 
Dans le cadre d’une régression, le principe va être d’estimer nos outputs par le modèle 1, puis d’utiliser les résidus de ce modèle comme variable cible du modèle 2 et ainsi de suite :
Pour pouvoir prédire un output en fonction d’un input dont on ne connait pas la variable cible, il faut prédire le résidu de chaque modèle et ensuite en faire la somme :
Dans le cadre d’une classification, chaque individu dispose d’un poids qui sera le même au départ, et qui, si un modèle se trompe, sera augmenté avant d’estimer le modèle suivant (qui prendra donc en compte ces poids) :
La particularité du Gradient Boosting est que dans la classification, l’actualisation des poids se calculera de la même façon que la descente de gradient stochastique, et dans la régression, la fonction de coût globale aura aussi la même structure que la descente de gradient stochastique. 
Le Gradient Boosting est la plupart du temps utilisé avec des algorithmes d’Arbre de Décision, considérés dans ce cadre comme des « weak learners ».

Spécificités de XGBoost

La principale différence entre XGBoost et d’autres implémentations de la méthode du Gradient Boosting réside dans le fait que XGBoost est informatiquement optimisé pour rendre les différents calculs nécessaires à l’application d’un Gradient Boosting rapide. Plus précisément, XGBoost traite les données en plusieurs blocs compressés permettant de les trier  beaucoup plus rapidement ainsi que de les traiter en parallèle
Mais les avantages de XGBoost ne sont pas uniquement liés à l’implémentation de l’algorithme, et donc à ses performances, mais aussi aux divers paramètres que celui-ci propose. En effet XGBoost propose un panel d’hyperparamètres très important ; il est ainsi possible grâce à cette diversité de paramètres, d’avoir un contrôle total sur l’implémentation du Gradient Boosting. Il est aussi possible de rajouter différentes régularisations dans la fonction de perte, limitant un phénomène qui arrive assez souvent lors de l’utilisation d’algorithmes de Gradient Boosting : l’overfitting (le sur-apprentissage). 
C’est pour cela que XGBoost est souvent l’algorithme gagnant des compétitions Kaggle, il est rapide, précis et efficace, permettant une souplesse de manœuvre inédite sur le Gradient Boosting. Finalement, rappelons-le, le Gradient Boosting servant principalement à améliorer des modèles faibles, XGBoost aura quasi tout le temps de meilleurs résultats que son modèle faible de base. 

Si vous souhaitez en savoir plus sur XGBoost, le Gradient Boosting, ou encore nos modules de Machine Learning, vous pouvez prendre contact avec nos équipes .

Actualité data

DataScientist : Recrutement VS Formation

Pour la 5ème année consécutive, le métier de Data Scientist a été désigné comme le meilleur emploi aux USA par Glassdoor c’est aussi le métier qui connaît la croissance la plus rapide.

Lire plus »
Intelligence Artificielle et Société

Ethique ou Big Data

Comment faire prévaloir une question d’éthique en matière de données alors que la concurrence se veut mondiale ? Les européens doivent-ils se soumettre à une concurrence américaine et asiatique déloyale pour une question d’éthique ?

Lire plus »