Cómo resolver esta cuestión (Parámetros: { "eval_set", "verbose" } no puedan ser utilizadas.?

0

Pregunta

Cuando yo uso el XGBoostRegressor para predecir el Precio de las Acciones, y yo tratamos de ajustar el modelo.

    # XGBoostRegressor
parameters = {
    'n_estimators': [100, 200, 300, 400],
    'learning_rate': [0.001, 0.005, 0.01, 0.05],
    'max_depth': [8, 10, 12, 15],
    'gamma': [0.001, 0.005, 0.01, 0.02],
    'random_state': [42]
}

eval_set = [(X_train, y_train), (X_valid, y_valid)]
model = xgb.XGBRegressor(eval_set = eval_set, objective = 'reg:squarederror', verbose = False)
clf = GridSearchCV(model, parameters)

clf.fit(X_train, y_train)

print(f'Best params: {clf.best_params_}')
print(f'Best validation score = {clf.best_score_}')

Y entonces recibí una ADVERTENCIA.

Parameters: { "eval_set", "verbose" } might not be used.
  This could be a false alarm, with some parameters getting used by language bindings but
  then being mistakenly passed down to XGBoost core, or some parameter actually being used
  but getting flagged wrongly here. Please open an issue if you find any such cases.

Repetir y repetir de nuevo. Ya he cambiado los parámetros, pero no funcionó. Y no he podido encontrar ningún métodos para resolver? ¿Alguien satisfacer esta PREGUNTA? Y Cómo resolverlo? Gracias.

machine-learning python warnings xgboost
2021-11-23 16:58:31
1

Mejor respuesta

0

Pasar el eval_set y detallado de ajuste() y no XGBRegressor()

clf.fit(X_train, y_train, eval_set=eval_set, verbose=False)

Ref.: https://xgboost.readthedocs.io/en/latest/python/python_api.html?highlight=fit#xgboost.XGBRFRegressor.fit

2021-11-24 21:13:16

En realidad, no es un problema. Sólo se necesita más minutos para calcular. Y he ejecutado el código en la consola de como 10 minutos, finalmente llegó la respuesta.
Max

En el doc dice que su en XGBRegressor en la nota de kwargs: **kwargs is unsupported by scikit-learn. We do not guarantee that parameters passed via this argument will interact properly with scikit-learn. Así que la forma correcta es pasar el eval_set y detallado en el ajuste(). detallado no es grave, pero eval_set, si se ignora, puede tener consecuencias en su objetivo. Hasta usted, por supuesto.
ferdy

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................