内部调优学习器将在 MLR 中的嵌套 cv 中返回什么?



MLR中,有一种实现嵌套交叉验证的方法。在嵌套 cv 中,内循环用于选择最佳调优参数,外循环用于评估模型性能。当我将嵌套 cv 与特征选择过程相结合时,我对内部最佳调优模型MLR返回的内容有点困惑。例如,我想首先应用一个基于结果<0.05 的相关 p 值的过滤器。在嵌套的 cv 中(我在训练验证测试集中说(,它应该是: 在内部循环中,对于每个训练集,应用过滤器,然后调整我们感兴趣的参数并在验证集中进行测试。在内部循环中,我们可以获得最佳调优参数和与之关联的功能集。

我想知道的是内部最佳调优参数将返回什么用于外部循环训练,我假设有两种可能的模型:

内部最佳调
  1. 优模型仅返回最佳调优参数,而不返回所选特征子集。因此,在外部循环中,我们将首先应用相同的筛选器,然后使用最佳调优参数训练 + 验证集。

  2. 内部最佳调
  3. 优模型返回最佳调优参数和所选特征子集。因此,在外部循环中,我们将仅使用最佳调优参数和选定的特征子集(来自内部循环(训练训练+验证集。

在我看来,我认为第一个更合乎逻辑。我的部分代码如下:

svm_learner<-makeLearner("classif.svm",predict.type="prob",fix.factors.prediction = TRUE)
svm_filter<-makeFilterWrapper(learner = svm_learner,
fw.method = "t.test.filter", fw.threshold = -0.05)
svm_filter_nested<-makeTuneWrapper(svm_filter,par.set=ps,
control=ctrl,resampling=inner)
r=resample(svm_filter_nested,task,resampling=outer,models=TRUE)

选项 2( 是正确的。

超参数针对所选特征子集进行了优化。如果您在外循环中再次重新运行过滤器进程,我将没有意义。

在每个外部折叠中发生的参数来自内部优化循环的参数不超过训练/预测。外循环中没有进行优化。

PS:你可能想在 https://stats.stackexchange.com/而不是Stackoverflow上提出这样的一般性问题,因为它们与一般(统计(概念而不是编程有关。 人们会投票关闭这些问题,因为它们与编程无关。(请注意,MLR团队中没有人在看stats.stackexchange问题(

相关内容

  • 没有找到相关文章

最新更新