Existen varias implementaciones de la familia de modelos GBDT, tales como:
- GBM
- XGBoost
- LightGBM
- Catboost.
¿Cuáles son las diferencias matemáticas entre estas diferentes implementaciones?
Catboost parece superar a las otras implementaciones incluso utilizando solo sus parámetros predeterminados de acuerdo con este punto de referencia , pero sigue siendo muy lento.
Supongo que catboost no usa las variables dummified, por lo que el peso dado a cada variable (categórica) está más equilibrado en comparación con las otras implementaciones, por lo que las variables de alta cardinalidad no tienen más peso que las otras. Permite que los categóricos débiles (con baja cardinalidad) ingresen a algunos árboles, por lo tanto, un mejor rendimiento. Aparte de eso, no tengo más explicaciones.
Respuestas:
https://arxiv.org/abs/1706.09516
Desea ver este artículo en inglés del equipo de Yandex sobre la singularidad matemática de CATBoost.
Lo leí brevemente, y entre algunas cosas que pude entender rápidamente fue el hecho de que no usan los residuos obtenidos en TRAIN para hacer TRAIN , ya que estos residuos crean un sesgo optimista de la calidad del aprendizaje. ( Actualización: esta novedad ofrece una forma de combatir el sobreajuste, que es una de las razones por las que el algoritmo funcionó mejor en comparación con sus análogos, además de una variedad de formas de preprocesar variables categóricas).
Lamento no darle una respuesta específica y completa.
Primero, le sugiero que lea un artículo de Friedman sobre Gradient Boosting Machine aplicado a modelos de regresores lineales, clasificadores y árboles de decisión en particular. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
No entraría en los detalles aquí. Es solo una buena lectura que cubre varios tipos de pérdida (L) y además del concepto de importancia variable. Por supuesto, este es un documento histórico de implementación del método de un descenso en el espacio de funciones (modelos de bajo nivel) en lugar de parámetros para lograr la minimización de pérdidas.
Si miras aquí: https://arxiv.org/pdf/1603.02754.pdf
Encontrará una viñeta matemática para el modelo XGBoost de Tianqi Chen et al. Ahora se vuelve interesante. Un par de desviaciones matemáticas de este modelo del clásico GBM de Friedman son:
En este punto: mire aquí para encontrar una implementación de la pérdida de cuantiles en CATBoost, que es útil y proporciona tanto la primera como la segunda derivada: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Si bien no puede encontrar esta útil función de pérdida L1 en XGBoost, puede intentar comparar la implementación de Yandex con algunas de las funciones de pérdida personalizadas escritas para XGB.
Considere este enlace: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Ofrecen una variedad de formas de alimentar características categóricas al entrenamiento del modelo además de usar el antiguo y conocido enfoque único. La disminución de las dimensiones de un espacio de entrada sin perder mucha información es una de las posibles razones por las que el modelo ajustado está menos equipado.
Termine. No uso LightGBM, así que no puedo arrojar ninguna luz sobre él.
fuente