Estoy tratando de entender cómo funciona XGBoost. Ya entiendo cómo funcionan los árboles impulsados por gradiente en Python sklearn. Lo que no está claro para mí es si XGBoost funciona de la misma manera, pero más rápido, o si hay diferencias fundamentales entre él y la implementación de Python.
Cuando leo este artículo
http://learningsys.org/papers/LearningSys_2015_paper_32.pdf
Me parece que el resultado final que sale de XGboost es el mismo que en la implementación de Python, sin embargo, la principal diferencia es cómo XGboost encuentra la mejor división para hacer en cada árbol de regresión.
Básicamente, XGBoost da el mismo resultado, pero es más rápido.
¿Es esto correcto o hay algo más que me estoy perdiendo?
fuente
n_jobs
parámetro de interfaz disponible; El procesamiento paralelo no es posible internamente con la implementación del algoritmo por parte de sklearn.A diferencia del aumento de gradiente de Sklearn, Xgboost también regulariza el árbol para evitar el sobreajuste y también trata eficientemente los valores faltantes. El siguiente enlace puede ser útil para aprender xgboost con precisión https://www.youtube.com/watch?v=Vly8xGnNiWs
fuente
XGboost es la implementación de GBDT con randmization (utiliza muestreo de columnas y muestreo de filas). El muestreo de filas es posible al no utilizar todos los datos de entrenamiento para cada modelo base del GBDT. En lugar de usar todos los datos de entrenamiento para cada modelo base, muestreamos un subconjunto de filas y usamos solo esas filas de datos para construir cada uno de los modelos base. Esto garantiza que haya una menor posibilidad de sobreajuste, que es un problema importante con GBDT simple que XGBoost intenta abordar utilizando esta aleatorización.
fuente