Comment résoudre cette question (Paramètres: { "eval_set", "verbose" } peut pas être utilisé.?

0

La question

Lorsque j'utilise le XGBoostRegressor pour prédire les cours de la bourse, et j'essaie de l'ajustement du modèle.

    # 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_}')

Et puis j'ai reçu un AVERTISSEMENT.

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.

Répéter et répéter encore. J'ai déjà changé les paramètres, mais cela n'a pas fonctionné. Et je n'ai pas trouvé toutes les méthodes pour le résoudre? Quelqu'un at-il répondre à cette QUESTION? Et Comment le résoudre? Merci.

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

La meilleure réponse

0

Passer le eval_set et détaillé pour s'adapter() et ne pas XGBRegressor()

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

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

2021-11-24 21:13:16

En fait, ce n'est pas un problème. Il a juste besoin de plusieurs minutes pour calculer. Et j'ai exécuté le code dans la console pour comme 10 minutes, a finalement obtenu la réponse.
Max

Dans la doc de son dit sur XGBRegressor dans la note pour kwargs: **kwargs is unsupported by scikit-learn. We do not guarantee that parameters passed via this argument will interact properly with scikit-learn. Donc la bonne façon est de passer le eval_set et détaillé dans la forme(). verbose est pas grave, mais eval_set si ignoré, peut avoir des conséquences sur votre objectif. Jusqu'à vous, bien sûr.
ferdy

Dans d'autres langues

Cette page est dans d'autres langues

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