Как решить этот вопрос (Параметры: { "eval_set", "подробный" } могут не использоваться.?

0

Вопрос

Когда я использую XGBoostRegressor для прогнозирования цены акций, и я стараюсь соответствовать модели.

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

А потом я получил ПРЕДУПРЕЖДЕНИЕ.

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.

Повторяйте и повторяйте снова. Я уже изменил параметры, но это не сработало. И я не нашел никаких методов ее решения? Кто-нибудь сталкивался с этим ВОПРОСОМ? И как это решить? Спасибо.

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

Лучший ответ

0

Передайте eval_set и подробно, чтобы соответствовать (), а не XGBRegressor()

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

Ссылка: https://xgboost.readthedocs.io/en/latest/python/python_api.html?выделите=подходит#xgboost.XGBRFRegressor.подходит

2021-11-24 21:13:16

На самом деле, это не проблема. Просто для расчета требуется больше минут. И я выполнил код в консоли около 10 минут, наконец получил ответ.
Max

В документе говорится о XGBRegressor в примечании для кваргов: **kwargs is unsupported by scikit-learn. We do not guarantee that parameters passed via this argument will interact properly with scikit-learn. Поэтому правильный способ-передать eval_set и подробно описать в fit(). многословие не является серьезным, но eval_set, если его игнорировать, может иметь последствия для вашей цели. Конечно, это зависит от вас.
ferdy

На других языках

Эта страница на других языках

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