Saltar al contenido

¿Cuál es la diferencia entre xgb.train y xgb.XGBRegressor (o xgb.XGBClassifier)?

Solución:

xgboost.train es la API de bajo nivel para entrenar el modelo a través del método de aumento de gradiente.

xgboost.XGBRegressor y xgboost.XGBClassifier son los envoltoriosEnvoltorios similares a Scikit-Learn, como lo llaman) que preparan el DMatrix y pasar la función objetivo y los parámetros correspondientes. Al final, el fit la llamada simplemente se reduce a:

self._Booster = train(params, dmatrix,
                      self.n_estimators, evals=evals,
                      early_stopping_rounds=early_stopping_rounds,
                      evals_result=evals_result, obj=obj, feval=feval,
                      verbose_eval=verbose)

Esto significa que todo eso se puede hacer con XGBRegressor y XGBClassifier es factible a través de subyacente xgboost.train función. Al revés, obviamente no es cierto, por ejemplo, algunos parámetros útiles de xgboost.train no son compatibles con XGBModel API. La lista de diferencias notables incluye:

  • xgboost.train permite configurar el callbacks aplicado al final de cada iteración.
  • xgboost.train permite la continuación del entrenamiento a través de xgb_model parámetro.
  • xgboost.train permite no solo la minización de la función eval, sino también la maximización.

@Maxim, a partir de xgboost 0.90 (o mucho antes), estas diferencias ya no existen en ese xgboost.XGBClassifier.fit:

  • tiene callbacks
  • permite contiunation con el xgb_model parámetro
  • y admite las mismas métricas de evaluación integradas o funciones de evaluación personalizadas

Lo que encuentro es diferente evals_result, en el sentido de que debe recuperarse por separado después del ajuste (clf.evals_result()) y el resultante dict es diferente porque no puede aprovechar el nombre de las evaluaciones en la lista de seguimiento ( watchlist = [(d_train, 'train'), (d_valid, 'valid')] ).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *