![]() | |
Tipus | biblioteca informàtica i programari lliure ![]() |
---|---|
Versió estable | |
Llicència | Apache License 2.0 |
Característiques tècniques | |
Sistema operatiu | Linux ![]() |
Plataforma | Multiplataforma |
Escrit en | R, Python, Julia, C++, Java, Ruby, C i Swift ![]() |
Equip | |
Creador/s | The XGBoost Contributors |
Més informació | |
Lloc web | www.xgboost.ai |
Stack Exchange | Etiqueta ![]() |
| |
XGBoost [1] (eXtreme Gradient Boosting) és una biblioteca de programari de codi obert que proporciona un marc de reforç de gradient regularitzador per a C++, Java, Python,[2] R,[3] Julia,[4] Perl,[5] i Scala. Funciona a Linux, Windows,[6] i macOS.[7] A partir de la descripció del projecte, pretén proporcionar una "Biblioteca d'augment del gradient escalable, portàtil i distribuït (GBM, GBRT, GBDT)". S'executa en una única màquina, així com en els marcs de processament distribuïts Apache Hadoop, Apache Spark, Apache Flink i Dask.[8][9]
Ha guanyat molta popularitat i atenció recentment com a algorisme triat per molts equips guanyadors de competicions d'aprenentatge automàtic.[10]
XGBoost va començar inicialment com un projecte de recerca de Tianqi Chen [11] com a part del grup Distributed (Deep) Machine Learning Community (DMLC). Inicialment, va començar com una aplicació de terminal que es podia configurar mitjançant un fitxer de configuració libsvm. Es va fer molt conegut als cercles de la competició ML després del seu ús en la solució guanyadora del Higgs Machine Learning Challenge. Poc després, es van construir els paquets Python i R, i XGBoost ara té implementacions de paquets per a Java, Scala, Julia, Perl i altres llenguatges. Això va portar la biblioteca a més desenvolupadors i va contribuir a la seva popularitat entre la comunitat Kaggle, on s'ha utilitzat per a un gran nombre de competicions.[12]
Aviat es va integrar amb una sèrie d'altres paquets, facilitant l'ús a les seves respectives comunitats. Ara s'ha integrat amb scikit-learn per a usuaris de Python i amb el paquet caret per a usuaris R. També es pot integrar en marcs de flux de dades com Apache Spark, Apache Hadoop i Apache Flink mitjançant el Rabit [13] i XGBoost4J abstractes.[14] XGBoost també està disponible a OpenCL per a FPGA.[15] Tianqi Chen i Carlos Guestrin han publicat una implementació eficient i escalable de XGBoost.[16]
Les característiques destacades de XGBoost que el fan diferent d'altres algorismes d'augment del gradient inclouen: [17][18][19]
XGBoost funciona com a Newton-Raphson a l'espai funcional a diferència de l'augment del gradient que funciona com a descens del gradient a l'espai funcional, s'utilitza una aproximació de Taylor de segon ordre a la funció de pèrdua per fer la connexió amb el mètode de Newton Raphson.