K折vs.蒙特卡洛交叉验证


29

我正在尝试学习各种交叉验证方法,主要是打算将其应用于监督的多元分析技术。我遇到的两个是K折和蒙特卡洛交叉验证技术。我读过K折是Monte Carlo的一种变体,但我不确定我是否完全理解组成Monte Carlo的定义。有人可以解释这两种方法之间的区别吗?



因此,我会说蒙特卡洛是训练集和测试集的随机大小,而k折是定义的集合大小是正确的吗?我看过上面的页面,但不太了解其中的区别。
利亚姆

我熟悉各种类型的交叉验证和引导外验证,但是还没有遇到过“蒙特卡洛交叉验证”一词(我可能会用其他名称知道它)。您能否链接或引用有关蒙特卡洛交叉验证工作原理的描述?
cbeleites支持Monica

蒙特卡洛(Monte Carlo)最简单和开放的访问描述在wiki上。我只是似乎看不到k折和蒙特卡洛方法之间的区别。
利亚姆

Answers:


36

交叉验证ķ

假设您有100个数据点。对于倍交叉验证,这100个点被分为k个相等大小和互斥的“倍数”。对于k = 10,您可以将点1-10分配给#1折叠,将11-20分配给#2折叠,依此类推,依次完成,将点91-100分配给#10折叠。接下来,我们选择一个折叠作为测试集,然后使用剩余的k 1折叠来形成训练数据。对于第一次运行,您可以将1-10点用作测试集,将11-100点用作训练集。然后,下一次运行将使用点11-20作为测试集,并在点1-10和21-100上进行训练,依此类推,直到每折一次都用作测试集。ķķķķ-1个

蒙特卡洛交叉验证

蒙特卡洛的工作方式有所不同。您随机选择(不替换)部分数据以形成训练集,然后将其余的点分配给测试集。然后,此过程重复多次,每次都(随机)生成新的训练和测试分区。例如,假设您选择使用10%的数据作为测试数据。然后在代表#1测试集可能点64,90,63,42,65,49,10,64,96,和48在下一运行,测试组可能是90,60,23,67, 16,78,42,17,73,和26。由于分区每次运行独立完成的,相同的点可以出现在测试设置多次,这是Monte Carlo和交叉验证之间的主要区别

比较方式

每种方法都有其自身的优点和缺点。在交叉验证下,每个点仅被测试一次,这似乎很公平。但是,交叉验证仅探讨了可能已对数据进行分区的几种方式。蒙特卡洛让您探索更可行的分区,但你不可能让所有的人-有可能的方式来50/50分割100个数据点集(!)。100501028

如果您尝试进行推理(即,统计比较两个算法),则对倍交叉验证运行的结果取平均值,将获得(几乎)对算法性能的(几乎)无偏估计,但方差很大(如您所愿)。期望只有5或10个数据点)。由于原则上您可以在需要/负担得起的范围内运行它,因此蒙特卡洛交叉验证可以为您提供较少的变量,但有更大的偏差。ķ

有些方法将两者融合在一起,例如在5x2交叉验证中(请参阅Dietterich(1998),尽管我认为此后已有一些进一步的改进),或者通过校正偏差来进行校正(例如Nadeau和Bengio,2003年)。 。


2
有人通过建议的编辑队列询问是否进行了蒙特卡洛的更换。对于每次蒙特卡洛跑步,训练和测试集都将被绘制而无需替换(即,每个点仅一次分配给火车或测试集)。但是,运行是独立完成的,因此给定的示例可以多次显示在同一集合中。这是蒙特卡洛和k折交叉验证之间的主要区别!
Matt Krause 2014年

13

假设是数据集的大小, kk倍子集的数量,n t是训练集的大小,n v是验证集的大小。因此,对于k倍交叉验证,N = k × n v,对于蒙特卡洛交叉验证,N = n t + n vñķķñŤñvñ=ķ×ñvķñ=ñŤ+ñv

倍交叉验证ķ(kFCV)将数据点分为相等大小的 k个互斥子集。然后,该过程将 k个子集中的一个作为验证集保留下来,并在其余子集中进行训练。此过程重复 k次,每次都遗漏 k个子集之一。k的大小可以在 N 2的范围内 ( k = N称为留一法交叉验证)。[2]中的作者建议设置 k = 5 10ñķķķķķñ2ķ=ñķ=510

蒙特卡洛交叉验证(MCCV)通过将n t个数据点 采样而不进行替换,将数据点简单地分为两个子集n tn v。然后该模型上训练子集Ñ 和子集验证Ñ v。还有存在 ÑññŤñvñŤñŤñv唯一的训练集,但MCCV避免了运行这么多次迭代的需要。Zhang [3]显示,针对N2次迭代运行MCCV,其结果接近于对所有NññŤñ2独特的训练集。应该注意的是,有关大氮的文献缺乏研究。 ññŤ

n t的选择会影响偏差/方差的权衡。kn t越大,偏差越小,方差越大。较大的训练集在迭代之间更相似,因此过度适合训练数据。有关此讨论的更多信息,请参见[2]。kFCV和MCCV的偏差和方差是不同的,但是可以通过选择适当的kn t级别来使两种方法的偏差相等。两种方法的偏差和方差值在[1]中显示(本文将MCCV称为重复学习测试模型)。ķñŤķñŤķñŤ


v

[2] Hastie,T.,Tibshirani,R.和Friedman,J.(2011)。统计学习的要素:数据挖掘,推理和预测。第二版。纽约:施普林格。

[3] Zhang,P.(1993)。通过Muiltfold交叉验证进行模型选择。安 统计 21 299-313


7

另外两个答案很好,我只添加两张图片以及一个同义词。


K折交叉验证(kFCV):

在此处输入图片说明

蒙特卡洛交叉验证(MCCV)=重复随机子采样验证(RRSSV):

在此处输入图片说明


参考文献:

图片来自(1)(第64和65页),并且在(1)和(2)中提到了同义词。

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.