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:
- https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 , que solo se trata de velocidad pero no de precisión.
- 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 :)
Respuestas:
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).
fuente
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
fuente