我知道有很多主题(1、2、3 )、论文(1、2、3 )和网站(1 )详细讨论了这个主题。然而,在过去的两天里,我正在阅读我能找到的关于这个主题的所有内容,似乎我在进展方面遇到了障碍。
因此,非常感谢您对该主题的另一种看法。
据我了解,当我们有多个模型时,我们使用嵌套交叉验证,每个模型都有一定数量的超参数需要调整。这是一个示例,据我所知,将使用嵌套交叉验证:
假设我们有一个由 100 个观察值组成的数据集,我们想看看以下哪个模型(括号中带有超参数)是最好的:
-神经网络(隐藏层数,每个隐藏层中的神经元数,激活函数)
-KNN(邻居数,距离度量)
-SVM(核函数类型,核函数参数)
由于观察的数量很少,我们无法将三个不相交的集合(训练、验证、测试)分开,因为我们最终可能会得到一个最差的模型,因为它的训练数据少于可用的数据。为了解决这个问题,我们将实施交叉验证策略。(到目前为止这是正确的吗?)
在嵌套交叉验证的内部循环中,我们将为每个模型选择最佳的超参数组合。之后,我们将使用来自内循环的组合数据训练每个模型,然后在外循环交叉验证中进行比较。具有较小误差度量的模型将被认为是最好的。然后,该模型将使用整个数据集进行训练,并用于未来的预测。
我的主要疑问是:为什么我不能重复交叉验证以获得相同的结果?例如,假设我使用了重复的 k 折。在这种情况下,我将训练训练集中的每个模型和超参数组合,并针对每个 k 折拆分评估其在测试集中的性能。然后我会选择在所有重复中给出较小平均误差的模型和超参数。最后,最好的模型被拟合到类似于嵌套交叉验证示例的整个数据。
据我了解,在重复的交叉验证示例中,估计的误差会有所偏差。发生这种情况是因为存在一些信息泄漏,因为我们使用相同的数据进行模型选择和超参数调整以及模型评估。但是,如果我只对选择最佳模型感兴趣,那么嵌套交叉验证真的有必要吗?
随意纠正任何错误的假设或不正确的术语使用,因为我对这个领域相当陌生,任何帮助将不胜感激。