xgboost: какие данные использовать в списке наблюдения - PullRequest
0 голосов
/ 28 апреля 2020

При запуске xgboost для оптимизации его гиперпараметров, правильно ли, что я использую свой dev (валидация), заданный в списке наблюдения, и чтобы делать прогнозы для проверки его производительности? У меня также был вопрос о том, как следовать этому же процессу при использовании hyperopt для поиска гиперпараметров.

Мне интересно, правильно ли это, потому что впечатлено, что мы никогда не используем набор тестов для чего-то другого, кроме как сделать окончательный прогноз в конце. Спасибо за ваше время.

# prepare xgboost data
xg_train = xgb.DMatrix(X_train, label=y_train)
xg_test = xgb.DMatrix(X_test, label=y_test)
xg_dev = xgb.DMatrix(X_dev, label=y_dev)

# validations set to watch performance
watchlist = [(xg_train,'train'), (xg_dev,'eval')]

# validation results
evals_results = {}

# boost
bst = xgb.train(params=param,
                dtrain=xg_train,
                num_boost_round=5000,
                evals=watchlist,
                evals_result=evals_results,
                early_stopping_rounds=100)

# generate scores
predicted_y = bst.predict(xg_dev, ntree_limit=bst.best_iteration)
current_score = f1_score(y_dev, np.round(predicted_y), average='weighted')
...