n_estimators в XGBoost, ранняя остановка против применения к полному набору данных - PullRequest
0 голосов
/ 25 сентября 2019

XGBoost допускает раннюю остановку на основе метрики оценки, которая может быть полезна для определения наилучшего числа циклов n_estimators.Мой вопрос заключается в том, что если я использую раннюю остановку для определения хороших n_estimators, а затем захочу переучиться на полном наборе данных, включая как набор поездов, так и раздел проверки, поддерживающий метрику оценки, было бы полезно увеличить n_estimators от числаопределяется на меньшем наборе данных?

Поскольку последующее обучение на полном наборе без проверочного набора затрудняет проведение экспериментов.(Я имею в виду, я полагаю, я мог бы отделить набор проверки от набора проверки, но вы знаете, краудсорсинг, это то, где он находится.)

#scenario one, used to derive a good n_estimators

fit_params = {'early_stopping_rounds':55, 
              'eval_metric'          : 'auc',
              'eval_set'             : [[val_trainset, val_labelset]],
              'verbose'              : True
             }

xgb_model = xgb.XGBClassifier(n_estimators = 9999)

xgb_model.fit(trainset, labelset, **fit_params)

#this derives a good n_estimators
derived_value = # derived from fit

#scenario two, now retrain on the full data set

fit_params = {'verbose'              : True
             }

xgb_model = xgb.XGBClassifier(n_estimators = derived_value)

xgb_model.fit(full_trainset, full_labelset, **fit_params)

#Should the derived n_estimators be increased now that 
#we are fitting using a larger data set?
...