2016-09-19 115 views
0

有没有什么方法可以直接从xgboost.cv访问训练有素的xgboost模型?或者,我是否必须手动循环折叠并在这种情况下执行合适的操作?Xgboost交叉验证模型访问

xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0, 
     obj = logregobj, feval=evalerror) 

回答

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)