¿Puedo ajustar el modelo XGBOOST en lugar de volver a capacitarlo?
-
16-10-2019 - |
Pregunta
Estoy usando la biblioteca xgboost. Mi sistema ejecuta un Cronjob cada noche, donde extrae los datos de la base de datos y entrena el modelo. Sin embargo, me gustaría eliminar el re-entrenamiento del modelo una y otra vez, y simplemente ajustarlo con cualquier dato nuevo que viniera en la base de datos. En la implementación de Sklearn (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.gradientboostingclassifier.html) Uno podría usar la opción Warm_Start, ¿qué pasa con xgboost?
Solución
Veo que en la versión actual de Python Wrapper de XGBOost puede especificar el nombre del archivo o el modelo XGBOOST existente (refuerzo de clase) en la función del tren.
Otros consejos
Cabe señalar que XGBOost realiza divisiones óptimas suponiendo que tenga acceso a todo el conjunto de datos, por lo que es probable que esté perdiendo cierta potencia predictiva actualizando en lugar de reentrenarse (aunque, por supuesto, esto puede valer el costo computacional menor).
Ver una discusión interesante sobre esto Problema de github xgboost