Aller au contenu

XGBoost

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Xgboost)
XGBoost
Description de l'image XGBoost logo.svg.

Informations
Dernière version 3.0.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/dmlc/xgboostVoir et modifier les données sur Wikidata
Assurance qualité Intégration continueVoir et modifier les données sur Wikidata
Écrit en R, Python, Julia, C++, Java, Ruby, C et SwiftVoir et modifier les données sur Wikidata
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Type Bibliothèque logicielleVoir et modifier les données sur Wikidata
Licence Licence Apache 2.0Voir et modifier les données sur Wikidata
Site web xgboost.aiVoir et modifier les données sur Wikidata

XGBoost (eXtreme Gradient Boosting) est une bibliothèque logicielle open source permettant de mettre en œuvre des méthodes d’amplification de gradient (Gradient boosting), de régularisation en C++, Java, R, Python et Julia[2]. XGBoost fonctionne aussi bien sur Linux que sur Microsoft Windows ou MacOS[3].

D'après sa description, le projet vise à offrir une bibliothèque de gradient boosting "conçue pour être évolutive, portable et distribuée. (GBM, GBRT, GBDT)"[2].

Au milieu des années 2010, XGBoost s’est imposé comme l’algorithme privilégié par de nombreux lauréats de concours de machine learning[4].

Fonctionnement de l'algorithme

[modifier | modifier le code]

XGBoost applique la méthode de Newton-Raphson dans l’espace des fonctions, contrairement au gradient boosting classique qui utilise la descente de gradient dans ce même espace. Une approximation de Taylor d’ordre deux est intégrée à la fonction de coût pour établir le lien avec la méthode de Newton-Raphson[5].

Entrée :

avec une fonction de perte différentiable , un nombre d’apprenants faibles (weak learners) et un taux d’apprentissage [5].


Algorithme :

  1. Initialisation du modèle avec une constante :

Cette étape consiste à choisir la valeur constante () qui minimise la perte globale sur l’entrée. Par exemple, pour une perte quadratique , est la moyenne des [6].

Pour à :

a. Calcul des gradients et hessiens :

Le gradient indique la direction de correction. L'hessien mesure la courbure de la perte, ce qui permet d’ajuster plus finement la mise à jour (méthode de Newton-Raphson)[7].

b. Ajustement d’un apprenant faible : On ajuste un modèle de base (par exemple, un arbre) pour prédire la cible suivante pour chaque [6]:

On cherche la fonction qui minimise :

est l’ensemble des fonctions possibles (par exemple, tous les arbres de décision d’une certaine profondeur)[5].

c. Mise à jour du modèle :

est le taux d’apprentissage[5].

Sortie finale :

La prédiction finale est la somme de la constante initiale et des corrections successives apportées par chaque apprenant faibles[6].

Notes et références

[modifier | modifier le code]
  1. « Release 3.0.0 stable », (consulté le )
  2. a et b « XGBoost Documentation — xgboost 2.0.3 documentation », sur xgboost.readthedocs.io (consulté le )
  3. « Installation Guide — xgboost 3.0.2 documentation », sur xgboost.readthedocs.io (consulté le )
  4. (en) « xgboost/demo at master · dmlc/xgboost », sur GitHub (consulté le )
  5. a b c et d (en) Tianqi Chen et Carlos Guestrin, « XGBoost: A Scalable Tree Boosting System », CrossRef, ACM,‎ , p. 785–794 (ISBN 978-1-4503-4232-2, DOI 10.1145/2939672.2939785, lire en ligne, consulté le )
  6. a b et c (en) Hastie, T., Tibshirani, R., & Friedman, J., The Elements of Statistical Learning., Springer, , 764 p. (lire en ligne), Section 10.13.
  7. Jerome H. Friedman, « Greedy function approximation: A gradient boosting machine. », The Annals of Statistics, vol. 29, no 5,‎ (ISSN 0090-5364, DOI 10.1214/aos/1013203451, lire en ligne, consulté le )