в настоящее время "fit_params" не рекомендуется, потому что это устарело.

аюсь сделать поиск по гиперпараметрам с помощью scridit-learn's GridSearchCV на XGBoost. Во время gridsearch я бы хотел, чтобы он прекратился досрочно, так как это резко сокращает время поиска и (ожидая) получит лучшие результаты в моей задаче прогнозирования / регрессии. Я использую XGBoost через его Scikit-Learn API.

    model = xgb.XGBRegressor()
    GridSearchCV(model, paramGrid, verbose=verbose ,fit_params={'early_stopping_rounds':42}, cv=TimeSeriesSplit(n_splits=cv).get_n_splits([trainX, trainY]), n_jobs=n_jobs, iid=iid).fit(trainX,trainY)

Я попытался дать параметры ранней остановки с использованием fit_params, но затем он выдает эту ошибку, которая в основном из-за отсутствия набора проверки, который требуется для ранней остановки:

/opt/anaconda/anaconda3/lib/python3.5/site-packages/xgboost/callback.py in callback(env=XGBoostCallbackEnv(model=<xgboost.core.Booster o...teration=4000, rank=0, evaluation_result_list=[]))
    187         else:
    188             assert env.cvfolds is not None
    189 
    190     def callback(env):
    191         """internal function"""
--> 192         score = env.evaluation_result_list[-1][1]
        score = undefined
        env.evaluation_result_list = []
    193         if len(state) == 0:
    194             init(env)
    195         best_score = state['best_score']
    196         best_iteration = state['best_iteration']

Как я могу применить GridSearch к XGBoost с использованием early_stopping_rounds?

примечание: модель работает без gridsearch, также GridSearch работает без 'fit_params = {' early_stopping_rounds ': 42}

Ответы на вопрос(1)

Ваш ответ на вопрос