交叉验证技术纲要


43

我想知道是否有人对交叉验证技术有所了解,并讨论了它们之间的区别以及何时使用它们的指南。维基百科列出了最常用的技术,但我很好奇是否还有其他技术,以及是否有任何针对它们的分类法。

例如,我刚遇到一个允许我选择以下策略之一的库:

  • 坚持
  • 引导程序
  • K交叉验证
  • 遗漏一个
  • 分层交叉验证
  • 平衡分层交叉验证
  • 分层支持
  • 分层引导

而且我正在尝试了解分层,平衡在引导,支持或CV中的含义。

如果人们愿意,我们还可以将此帖子转变为社区Wiki,并在此处收集有关技术或分类法的讨论。


如果我们可以链接到每种方法的说明,那么这个重大问题将更加有用。
mkt-恢复莫妮卡

Answers:


16

您可以添加到该列表:

  • 重复交叉验证
  • 离开小组出站交叉验证
  • 袋装(适用于随机森林和其他袋装模型)
  • 632+引导

关于如何使用这些技术或何时使用它们,我确实没有很多建议。您可以在R中使用插入符号包来比较CV,Boot,Boot632,留一法,留一法分组和袋外交叉验证。

通常,我通常使用boostrap,因为它比重复的k倍CV或留一法CV的计算强度小。Boot632是我选择的算法,因为它不需要比引导程序更多的计算,并且在某些情况下已证明比交叉验证或基本引导程序更好。

我几乎总是对随机森林使用袋外误差估计,而不是交叉验证。袋外错误通常是无偏见的,随机森林需要足够长的时间才能按原样计算。


3
关于何时使用这些工具有什么建议吗?
whuber

16

K折交叉验证(CV)将您的数据随机分为K个分区,然后您将这K个部分之一作为测试用例,并将其他K-1个部分一起作为训练数据。遗漏(LOO)是您取出N个数据项并进行N折CV的特殊情况。从某种意义上说,“伸出”是另一种特殊情况,您只能选择一个K折作为测试,而不旋转所有K折。

据我所知,10倍CV几乎是必需的,因为它可以有效地使用您的数据,并且还有助于避免不幸的分区选择。Hold Out不能有效地利用您的数据,LOO也没有那么强大(或类似的功能),但是10倍的折叠是正确的。

如果您知道数据包含多个类别,而一个或多个类别比其余类别小得多,则您的K个随机分区中的某些甚至可能根本不包含任何较小的类别,这将很糟糕。为了确保每个分区都具有合理的代表性,请使用分层方法:将数据分为多个类别,然后通过从每个类别中按比例随机选择来创建随机分区。

K-fold CV上的所有这些变体都可以从您的数据中选择而无需替换。引导程序选择要替换的数据,因此可以多次包含相同的数据,并且可能根本不包含某些数据。(与“ K折”不同,每个“分区”也将有N个项目,其中每个分区将有N / K个项目。)

(不过,我不得不承认,我不完全知道引导程序将如何在CV中使用。测试和CV的原理是确保您不对经过训练的数据进行测试,因此您可以关于您的技术+系数在现实世界中如何工作的更现实的想法。)

编辑:根据注释,将“保留不有效”替换为“保留不有效利用您的数据”以帮助澄清。


1
当您说“保留无效”时,我不确定是否会遵循。您在这里所说的效率是什么意思?与常规的N折相比,Hold Out不会在折叠中旋转,因此应更快。您是说比常规的N折CV更适合对抗过度拟合吗?
Amelio Vazquez-Reina

2
“有效”是指它没有有效地使用您的数据。K-fold CV的优点在于,您的数据100%用于培训,数据100%用于测试,这可以有效地利用您的数据。关键当然是您的所有数据不会同时用于测试和培训,这将产生方式优化的测试结果(过度拟合)。通过进行静态除法,Hold Out表示,例如,您的数据中的1/3将永远不会用于训练,而数据的2/3将永远不会用于测试,从而浪费了数据中的许多信息。
韦恩

@Wayne保持估计器不是渐近无偏的吗?同样,简单的k折CV比重复的k折CV更容易出现II型错误。
chl

@chl:我相信您在两个方面都是对的。我没有使用过重复的K折CV,但是它应该具有较低的方差,这会有所帮助。
韦恩


1

...以及何时使用它们的指南...

不幸的是,这个问题很难得到应有的重视。交叉验证至少有两个主要用途:选择模型和评估模型性能。

粗略地讲,如果您使用CV变体以较高的“测试/测试”比率对数据进行分割,则这对于评估会更好。使用更大的训练集将更准确地模拟适合整个数据集的模型的性能。

但是,高火车与测试的比率对于选择来说可能更糟。想象一下,确实有一个“最佳”模型可供您“选择”,但是您的数据集很大。然后,过大拟合的太大模型将具有与“最佳”模型几乎相同的CV性能(因为您可以成功地估计其杂散参数可以忽略不计)。数据的随机性和CV /拆分过程通常会导致您选择过度拟合模型,而不是真正的“最佳”模型。

有关线性回归案例中较早的渐近理论,请参见Shao(1993),“通过交叉验证进行线性模型选择”Yang(2007),“用于比较回归程序的交叉验证的一致性”Yang(2006),“用于分类的比较学习方法”给出了关于更一般的回归和分类问题的渐近理论。但是很难获得严格的有限样本建议。

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.