何时才真正需要嵌套交叉验证,并且可以在实践上有所作为?


36

使用交叉验证进行模型选择(例如,超参数调整)并评估最佳模型的性能时,应使用嵌套交叉验证。外环用于评估模型的性能,内环用于选择最佳模型。在每个外部训练集上选择模型(使用内部CV回路),并在相应的外部测试集上评估其性能。

这已经在很多线程中进行了讨论和解释(例如,在这里进行交叉验证后使用完整数据集进行培训吗?,请参阅@DikranMarsupial的答案),并且对我来说是完全清楚的。仅对模型选择和性能评估进行简单的(非嵌套)交叉验证会产生正偏差的性能评估。@DikranMarsupial在有关此主题的2010年论文中(关于模型选择中的过拟合和性能评估中的后续选择偏差),第4.3节称为“模型中的过拟合是否真的是真正的关注点”?-文件显示答案是肯定的。

综上所述,我现在正在使用多元多元岭回归,并且我看不到简单CV和嵌套CV之间的任何区别,因此在这种特殊情况下嵌套CV看起来像是不必要的计算负担。我的问题是:在什么条件下简单的简历会产生明显的偏差,而嵌套的简历可以避免这种情况?嵌套CV在实践中什么时候重要,什么时候没什么关系?有没有经验法则?

这是使用我的实际数据集的说明。水平轴是对脊回归的对。垂直轴是交叉验证错误。蓝线对应于简单的(非嵌套)交叉验证,具有50个随机的90:10训练/测试分割。红线对应于具有50个随机90:10训练/测试分割的嵌套交叉验证,其中使用内部交叉验证循环(也是50个随机90:10分割)选择λ。线是超过50个随机分割的平均值,阴影显示± 1标准偏差。log(λ)λ±1

简单与嵌套交叉验证

λλ

更新资料

实际上这样:-)只是差别很小。这是放大图:

简单与嵌套交叉验证,放大

λ=0.00250

简单与嵌套交叉验证,区别

λ=0.002

(我将整个过程运行了几次,并且每次都会发生。)

我的问题是,在什么情况下我们可以期望这种偏见是微不足道的?在什么情况下我们不应该这样?


我不太确定我是否了解该图,您能否生成一个散点图,显示每个轴上嵌套和非嵌套交叉验证的估计误差(假设每次50个测试训练的分割都是相同的)?您使用的数据集有多大?
迪克兰有袋博物馆,2015年

1
我生成了散点图,但是所有点都非常靠近对角线,很难辨别与它的任何偏差。因此,我从嵌套的CV误差中减去了简单的CV误差(对于最佳lambda),并将其绘制在所有训练测试拆分中。似乎确实很小,但明显偏见!我做了更新。让我知道这些数字(或我的解释)是否令人困惑,我希望这篇帖子清楚。
变形虫说恢复莫妮卡2015年

在第一段中,您已在每个外部训练集上选择了模型;应该是内在的吗?
理查德·哈迪

@RichardHardy不。但是我可以看到这句话的措词不是很清楚。在每个外部训练集中“选择”模型。将不同的模型(例如具有不同lambda的模型)装配到每个内部训练集上,并在内部测试集上进行测试,然后根据整个外部训练集选择其中一个模型。然后使用外部测试集评估其性能。是否有意义?
变形虫说莫妮卡(Monica)恢复职权

Answers:


13

我建议偏差取决于模型选择标准的方差,方差越大,偏差可能就越大。模型选择标准的方差有两个主要来源,即要对其进行评估的数据集的大小(因此,如果您的数据集较小,则偏差可能会更大)和统计模型的稳定性(如果可用训练数据很好地估计了模型参数,模型通过调整超参数来适应模型选择标准的灵活性较小。另一个相关因素是要进行的模型选择和/或要调整的超参数的数量。

在我的研究中,我正在研究强大的非线性模型和相对较小的数据集(通常在机器学习研究中使用),而这两个因素都意味着嵌套交叉验证是绝对必要的。如果增加参数的数量(每个内核可能具有每个属性的缩放参数),则过度拟合可能会“灾难性”。如果您使用的线性模型只有一个正则化参数,并且案例数量相对较多(相对于参数数量),则差异可能会小得多。

我应该补充一点,我建议始终使用嵌套的交叉验证,只要它在计算上是可行的,因为它消除了可能的偏差来源,因此我们(和同行审阅者; o)无需担心它是否是可以忽略不计。


2
如果使用所有数据,那不是有效地绘制了训练集误差吗?我经常使用分类模型,其中即使精心选择了正则化参数,最佳模型的训练集误差为零,但泛化误差为非零。
迪克兰有袋博物馆,2015年

1
数千种或更少的训练模式。您使用哪种模型?通常,随着数据集变大,统计问题会减少,而计算问题则会增加。k倍交叉验证仅比拟合基本模型(包括超参数调整)慢k倍,因此它很少从可行变为不可行。k折交叉验证也很容易并行化,这是我通常所做的。
迪克兰有袋博物馆,2013年

1
它只是给出了公正的性能估计。本质上是嵌套的CV估计了拟合模型(包括通过交叉验证进行模型选择)的方法的性能。为了获得操作模型,我们通常只使用整个数据集来重复该方法,从而提供与“平面”交叉验证过程相同的模型选择。
迪克兰有袋动物

1
我还遇到了嵌套简历的问题。使用无偏嵌套CV涉及使用较小数据拟合模型。对于10倍CV,嵌套CV占81%,而非嵌套CV占90%。同样,测试倍数变为9%,而非嵌套则为10%。这会在模型评估中产生额外的差异吗?特别是对于小型数据集,例如本文中的350个样本。这是使用嵌套简历的“缺点”吗?如果是这样,我们应该如何决定是否使用嵌套的简历与数据集的大小?非常感谢像您这样的专家的意见。有没有与此问题有关的论文?@Dikran Marsupial
zesla

2
@zesla是的,的确如此,内部交叉验证的数据较少,这将增加其方差,但是最终模型是使用整个数据集(包括超参数估计)构建的。在性能评估的偏差和方差之间总要权衡取舍。如果数据集很小,则使用嵌套的交叉验证是最重要的,因为模型选择中的过度拟合和偏差更成问题。在实际应用中,超参数很少,差异可能没有什么实际意义arxiv.org/abs/1809.09446
Dikran有袋动物
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.