LightGBM vs XGBoost

25

Estoy tratando de entender cuál es mejor (más preciso, especialmente en problemas de clasificación)

He estado buscando artículos que comparan LightGBM y XGBoost pero encontré solo dos:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 , que solo se trata de velocidad pero no de precisión.
  2. https://github.com/Microsoft/LightGBM/wiki/Experiments , que es de los autores de LightGBM y no sorprende que LightGBM gane allí.

En mis pruebas obtengo el mismo AUC para ambos algoritmos, pero LightGBM se ejecuta de 2 a 5 veces más rápido.

Si LGBM es tan genial, ¿por qué no escucho tanto al respecto aquí y en Kaggle :)

Sergey Nizhevyasov
fuente
Gracias, pero LightGBM también tiene paquetes para R y Python utilizados por la mayoría de los kagglers. Lo estoy usando con Python. En mis investigaciones de datos e internet, LGBM parece demasiado perfecto: muy rápido y no menos preciso. Pero tal vez me estoy perdiendo algo aquí si aún no se usa mucho :)
Sergey Nizhevyasov

Respuestas:

21

LightGBM es una gran implementación que es similar a XGBoost pero varía de algunas maneras específicas, especialmente en cómo crea los árboles.

Ofrece algunos parámetros diferentes, pero la mayoría de ellos son muy similares a sus contrapartes XGBoost.

Si usa los mismos parámetros, casi siempre obtiene una puntuación muy cercana. Sin embargo, en la mayoría de los casos, el entrenamiento será de 2 a 10 veces más rápido.


¿Por qué no lo usan más personas entonces?

XGBoost ha existido por más tiempo y ya está instalado en muchas máquinas. LightGBM es bastante nuevo y al principio no tenía un contenedor Python. La versión actual es más fácil de instalar y usar, por lo que no hay obstáculos aquí.

Muchos de los usuarios más avanzados en Kaggle y sitios similares ya usan LightGBM y para cada nueva competencia, obtienen cada vez más cobertura. Aún así, los scripts de inicio a menudo se basan en XGBoost ya que las personas simplemente reutilizan su código anterior y ajustan algunos parámetros. Estoy seguro de que esto aumentará una vez que haya algunos tutoriales y guías más sobre cómo usarlo (la mayoría de las guías que no son de ScikitLearn actualmente se centran en XGBoost o redes neuronales).

Frank Herfert
fuente
Gracias, eso tiene sentido. Quizás para los mejores kagglers el poder de cálculo no sea un gran problema, y ​​es más fácil mantener los scripts.
Sergey Nizhevyasov
10

XGBoost ahora tiene una opción de agrupación de histogramas para el crecimiento de árboles similar a la que utiliza LightGBM. Proporciona aproximadamente el mismo nivel de aceleración y características de precisión similares, aunque los algoritmos aún no son exactamente los mismos.

Aquí hay algunos gráficos y tablas que muestran cómo están uno encima del otro ahora. https://github.com/dmlc/xgboost/issues/1950

Para ser justos, LightGBM cita sus propias pruebas de rendimiento que muestran que aún superan a XGBoost (hist), aunque ya no por un orden de magnitud. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

James D
fuente