r - 如何设置嵌套 cv 以调整 xgboost 的超参数和最佳迭代次数?
问题描述
我尝试在 R 中为 xgboost 设置超参数调整。
我想使用本文中可视化的嵌套交叉验证:
https://weina.me/nested-cross-validation/
总而言之,我将:
- 使用内部循环来调整超参数;
- 使用外循环按指标进行性能测量。
尽管我注意到我可以找到的所有示例都已经在模型训练中使用了训练和测试数据,以便找到最佳迭代次数。
例如在这段代码中:
# Transform the two data sets into xgb.Matrix
xgb_train = xgb.DMatrix(data=train.data,label=train.label)
xgb_test = xgb.DMatrix(data=test.data,label=test.label)
# Train the XGBoost classifer
xgb.fit=xgb.train(
params=params,
data=xgb_train,
nrounds=10000,
nthreads=1,
early_stopping_rounds=10,
watchlist=list(val1=xgb_train,val2=xgb_test),
verbose=0
)
如果测试数据已经用于优化迭代次数,我还可以在内循环中再次使用它来调整超参数吗?我想这是不正确的,因为在这种情况下我使用了两次测试数据?
解决方案
推荐阅读
- java - 在 Java 上打印破折号的问题
- javascript - Ember JS 3.1 为什么没有加载带有hasMany关系的id?
- postgresql - 如何在 PostgreSQL 函数中使用“RAISE INFO, RAISE LOG, RAISE DEBUG, PERFORM”?
- vba - 将带有附件的电子邮件转发给所有收件人
- bison - 有没有办法根据语法生成东西?
- java - 带有嵌套对象的 Json 字符串映射
- python - Geopandas - 试图在 shapemap 上获取确切位置
- javascript - Google Maps API - 信息窗口中的图像幻灯片
- chef-infra - 如何从删除中恢复厨师节点对象?
- python - 根据存储在字符串、元组中的不同值创建字符串条件