XGBoost

XGBoost

Informations
Dernière version 3.0.0 ()[1]
Dépôt github.com/dmlc/xgboost
Assurance qualité Intégration continue
Écrit en R, Python, Julia, C++, Java, Ruby, C et Swift
Système d'exploitation Linux
Type Bibliothèque logicielle
Licence Licence Apache 2.0
Site web xgboost.ai

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

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

  1. « Release 3.0.0 stable », (consulté le )
  2. « 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. (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. (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 )
  • Portail des logiciels libres
  • Portail des probabilités et de la statistique
  • Portail des données