XGBoost - XGBoost

XGBoost
XGBoost logo.png
Desarrollador (es) Los colaboradores de XGBoost
Versión inicial 27 de marzo de 2014 ; hace 7 años ( 27 de marzo de 2014 )
Lanzamiento estable
1.4.0 / 10 de abril de 2021 ; hace 6 meses ( 04/10/2021 )
Repositorio
Escrito en C ++
Sistema operativo Linux , macOS , Windows
Escribe Aprendizaje automático
Licencia Licencia Apache 2.0
Sitio web xgboost .ai

XGBoost es una biblioteca de software de código abierto que proporciona un marco de refuerzo de gradiente de regularización para C ++ , Java , Python , R , Julia , Perl y Scala . Funciona en Linux , Windows y macOS . A partir de la descripción del proyecto, su objetivo es proporcionar una "Biblioteca de aumento de gradiente escalable, portátil y distribuida (GBM, GBRT, GBDT)". Se ejecuta en una sola máquina, así como en los marcos de procesamiento distribuidos Apache Hadoop , Apache Spark , Apache Flink y Dask .

Recientemente, ha ganado mucha popularidad y atención como el algoritmo elegido por muchos equipos ganadores de competencias de aprendizaje automático.

Historia

XGBoost comenzó inicialmente como un proyecto de investigación de Tianqi Chen como parte del grupo Distributed (Deep) Machine Learning Community (DMLC). Inicialmente, comenzó como una aplicación de terminal que se podía configurar mediante un archivo de configuración libsvm . Se hizo muy conocido en los círculos de competencia de ML después de su uso en la solución ganadora del Higgs Machine Learning Challenge. Poco después, se crearon los paquetes Python y R, y XGBoost ahora tiene implementaciones de paquetes para Java, Scala , Julia, Perl y otros lenguajes. Esto llevó la biblioteca a más desarrolladores y contribuyó a su popularidad entre la comunidad de Kaggle , donde se ha utilizado para una gran cantidad de competencias.

Pronto se integró con varios otros paquetes, lo que facilitó su uso en sus respectivas comunidades. Ahora se ha integrado con scikit-learn para usuarios de Python y con el paquete caret para usuarios de R. También se puede integrar en marcos de Data Flow como Apache Spark , Apache Hadoop y Apache Flink utilizando Rabit y XGBoost4J abstractos. XGBoost también está disponible en OpenCL para FPGA . Tianqi Chen y Carlos Guestrin han publicado una implementación eficiente y escalable de XGBoost.

Características

Las características destacadas de XGBoost que lo hacen diferente de otros algoritmos de aumento de gradiente incluyen:

El algoritmo

XGBoost funciona como Newton Raphson en el espacio funcional, a diferencia del aumento de gradiente que funciona como descenso de gradiente en el espacio funcional, se utiliza una aproximación de Taylor de segundo orden en la función de pérdida para hacer la conexión con el método de Newton Raphson.

Un algoritmo xgboost genérico no regularizado es:

Entrada: conjunto de formación , una función de pérdida diferenciable , un número de alumnos débiles y una tasa de aprendizaje .

Algoritmo:

  1. Inicialice el modelo con un valor constante:
  2. Para m = 1 a M :
    1. Calcule los 'gradientes' y 'arpilleras':
    2. Adapte a un alumno básico (o un alumno débil, por ejemplo, un árbol) utilizando el conjunto de formación resolviendo el problema de optimización a continuación:
    3. Actualiza el modelo:
  3. Producción

Premios

  • Premio John Chambers (2016)
  • Premio de Física de Alta Energía con Aprendizaje Automático (HEP cumple con ML) (2016)

Ver también

Referencias