在 xgboost 分类模型的交叉验证运行之间,我收集了不同的验证分数。这是正常的,训练/验证拆分和模型状态每次都不同。
flds = self.gsk.Splits(X, cv_folds=cv_folds)
cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=xgb_param['n_estimators'], nfold=cv_folds, flds, metrics='auc', early_stopping_rounds=50, verbose_eval=True)
self.model.set_params(n_estimators=cvresult.shape[0])
为了进行参数选择,我多次运行此 CV并对结果进行平均以减弱这些差异。
一旦我的模型参数被“找到”,训练模型的正确方法是什么,它似乎有一些内部随机状态?
我是否:
- 在完整的火车上训练并希望最好?
- 在我的 CV 循环中保持模型具有最佳验证分数(我担心这会过拟合)?
- 把它们都包起来?
- 只包好的?