首页 文章

Xgboost交叉验证模型访问

提问于
浏览
0

有什么方法可以直接从 xgboost.cv 访问训练有素的 xgboost 模型吗?或者我是否需要手动循环折叠并在这种情况下执行拟合?

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

1 回答

  • 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)

相关问题