XGBoost
| 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 :
- 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 :
où 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 :
où 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
- ↑ « Release 3.0.0 stable », (consulté le )
- « XGBoost Documentation — xgboost 2.0.3 documentation », sur xgboost.readthedocs.io (consulté le )
- ↑ « Installation Guide — xgboost 3.0.2 documentation », sur xgboost.readthedocs.io (consulté le )
- ↑ (en) « xgboost/demo at master · dmlc/xgboost », sur GitHub (consulté le )
- (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 )
- (en) Hastie, T., Tibshirani, R., & Friedman, J., The Elements of Statistical Learning., Springer, , 764 p. (lire en ligne), Section 10.13.
- ↑ 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