Come risolvere questa questione (Parametri: { "eval_set", "verbose" } potrebbe non essere utilizzato.

0

Domanda

Quando uso il XGBoostRegressor per prevedere il Prezzo di riserva, e cerco di adattare il modello.

    # 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 poi ho ricevuto un messaggio di AVVISO.

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.

Ripetere e Ripetere di nuovo. Ho già cambiato i parametri, ma non ha funzionato. E non le ho trovate qualsiasi dei metodi per risolvere esso? Qualcuno di rispondere a questa DOMANDA? E Come risolverlo? Grazie.

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

Migliore risposta

0

Passare il eval_set e dettagliato a (fit) e non XGBRegressor()

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

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

2021-11-24 21:13:16

In realtà, non è un problema. Ha solo bisogno di più minuti, per calcolare. E ho eseguito il codice nella console per 10 minuti, finalmente la risposta.
Max

Il doc dice la sua sul XGBRegressor nella nota per kwargs: **kwargs is unsupported by scikit-learn. We do not guarantee that parameters passed via this argument will interact properly with scikit-learn. Quindi, il modo corretto è quello di superare il eval_set e dettagliato nella fit(). verbose non è grave, ma eval_set se ignorato, può avere conseguenze sul vostro obiettivo. Fino a voi, naturalmente.
ferdy

In altre lingue

Questa pagina è in altre lingue

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