caret::rfe()的tuneLength参数作用范围及相关逻辑咨询
caret包递归特征消除(RFE)功能问题解答
问题1:tuneLength参数的调优覆盖范围
caret::rfe()的tuneLength参数仅作用于官方流程的第2.9步,不会覆盖第2.17步:
- 第2.9步为交叉验证单折内的当前特征子集超参数调优环节,
tuneLength的作用和普通train函数完全一致,用于控制单个超参数的候选值搜索数量。 - 第2.17步为全训练集+最优特征子集的最终模型训练环节,该环节不会重新做超参数搜索,直接使用前面交叉验证过程中筛选出的、对应最优特征子集的最佳超参数组合。
问题2:tuneLength的传入逻辑与fit函数实现
tuneLength参数会传入rfeControl$functions$fit,该逻辑仅针对caret官方内置的RFE拟合函数集(如rfFuncs、gbmFuncs等)生效。- 官方内置的
rfeControl$functions$fit默认执行逻辑会调用train函数,会自动将tuneLength等调优参数透传给底层的train调用。如果是用户自定义的fit函数,是否调用train、是否支持tuneLength参数由自定义逻辑决定。
内容的提问来源于stack exchange,提问作者blueskyddd
相关产品推荐
相关产品推荐

