Como resolver esta questão (Parâmetros: { "eval_set", "detalhado" } pode não ser utilizado.?

0

Pergunta

Quando eu uso o XGBoostRegressor para prever o Preço das Ações, e eu tento ajustar o 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_}')

E então eu tenho um AVISO.

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.

Repita e Repita novamente. Eu já alterou os parâmetros, mas isso não funcionou. E eu não encontrar quaisquer métodos para resolvê-lo? Alguém atender a essa PERGUNTA? E Como resolver isso? Obrigado.

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

Melhor resposta

0

Passar o eval_set e detalhado para ajuste() e não 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

Na verdade, não é um problema. Ele só precisa de mais minutos para calcular. E eu executado o código no console por 10 minutos, finalmente chegou a resposta.
Max

No doc o diz no XGBRegressor em observação para kwargs: **kwargs is unsupported by scikit-learn. We do not guarantee that parameters passed via this argument will interact properly with scikit-learn. Então, a maneira correta é passar a eval_set e detalhado no ajuste(). verbose não é grave, mas eval_set se ignorada, pode ter consequências em seu objetivo. Até você, é claro.
ferdy

Em outros idiomas

Esta página está em outros idiomas

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