Xgboost 交叉验证模型访问
Xgboost crossvalidated model access
有什么方法可以直接从 xgboost.cv
访问经过训练的 xgboost
模型?或者在这种情况下我必须手动循环折叠并执行拟合吗?
xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0,
obj = logregobj, feval=evalerror)
首先,您按照指示交叉验证 xgboost:
xgb.cv_m <- xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0, obj = logregobj, feval=evalerror)
然后,需要的轮数对应最好的AUC(AUC train and test means and std results from cross-validation are saved in the data frame 'dt' - check out 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)
有什么方法可以直接从 xgboost.cv
访问经过训练的 xgboost
模型?或者在这种情况下我必须手动循环折叠并执行拟合吗?
xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0,
obj = logregobj, feval=evalerror)
首先,您按照指示交叉验证 xgboost:
xgb.cv_m <- xgb.cv(param, dtrain, num_round, nfold = 5, seed = 0, obj = logregobj, feval=evalerror)
然后,需要的轮数对应最好的AUC(AUC train and test means and std results from cross-validation are saved in the data frame 'dt' - check out 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)