在mlr
R包中进行交叉验证(重抽样)时,通常需要调用makeResampleDesc
函数来指定方法和折数。
我的问题是:
- 是否可以使用预定义列作为折列?或者,
mlr
中的makeResampleDesc
是否确保创建的折数在相同种子的不同学习器之间保持一致,并且可以导出以进行进一步操作?
回答:
重抽样描述与任何学习器无关;你可以将一个重抽样描述用于多个学习器,并得到相同的折数。如果你想将它们与原始数据联系起来,你也可以从重抽样结果中提取折数。
你可以使用数据中的一列作为折列,通过在makeClassifTask
中使用blocking
参数。从帮助文档中可以看到:
blocking: [‘factor’]
一个与观测值数量相同长度的可选因子。具有相同阻塞级别的观测值“属于同一组”。具体来说,它们在重抽样迭代期间要么全部被放入训练集,要么全部被放入测试集。默认值为‘NULL’,表示没有阻塞。