我有什么方法可以直接从xgboost
访问经过培训的xgboost.cv
模型吗?或者,在这种情况下,我是否需要手动循环折叠并执行拟合?
xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0,
obj = logregobj, feval=evalerror)
答案 0 :(得分:1)
首先,您在指示时交叉验证xgboost:
xgb.cv_m <- xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0, obj = logregobj, feval=evalerror)
然后,所需的轮数对应于最佳AUC(AUC训练和测试手段以及交叉验证产生的std保存在数据框'dt'中 - 检查names(xgb_cv_m)
):
nr <- which(xgb_cv_m$dt$test.auc.mean == max(xgb_cv_m$dt$test.auc.mean))
接下来,当您使用'xgboost'调整最终模型时,使用nrounds = nr
如果您愿意,您还可以通过以下方式直观地检查每一轮的表现:plot(xgb_cv_m$dt$test.auc.mean)