交叉验证:K折与重复随机子采样


10

我想知道针对分类问题选择哪种类型的模型交叉验证:K折或随机子采样(引导采样)?

我最好的猜测是使用数据集的2/3(约1000个项目)进行训练,并使用1/3进行验证。

在这种情况下,K折仅给出三个迭代(折),这不足以看到稳定的平均误差。

另一方面,我不喜欢随机子采样功能:有些项目永远不会被选择进行训练/验证,而有些项目会被多次使用。

使用的分类算法:随机森林和逻辑回归。


1
我想一个先决问题是:这种选择是否不取决于所评估的算法(主要是其行为)?
鲁本斯2014年

1
@Rubens,我更新了问题:我对RF和逻辑回归
感兴趣

Answers:


7

如果您有足够数量的样本,并且想使用所有数据,则可以进行k倍交叉验证。大约有1,500个似乎很多,但是是否足以进行k倍交叉验证也取决于数据的维数(属性数和属性值数)。例如,如果每个观察值都有100个属性,则1,500个观察值较低。

k折交叉验证的另一个潜在弊端是单个极端异常值可能会扭曲结果。例如,如果您有一个极端的异常值可能严重影响您的分类器,那么在10倍交叉验证中,将影响10个分区中的9个(尽管对于随机森林,我认为您不会遇到这个问题)。

当您采样不足或遇到上述情况时,最好不要进行随机子采样(例如,引导采样),在这种情况下,您不希望每个观察都以k-1倍的形式出现。


4

我猜您说您想使用三折交叉验证,因为您对数据有所了解(使用k = 10会导致过拟合?我很好奇您的推理)。我不确定您是否知道这一点,如果不知道,您可以简单地使用较大的k。

如果您仍然认为无法使用标准的k折交叉验证,则可以对算法进行一些修改:说您将数据分成30折,每次使用20进行训练,每次使用10进行评估(然后向上移动)一倍,并使用第一个和最后一个9作为评估,其余作为训练)。这意味着您可以使用所有数据。

当我使用k倍交叉验证时,我通常会使用不同的随机化多次运行该过程,以确保我有足够的数据,如果没有,您会看到取决于随机化的不同性能。在这种情况下,我建议取样。然后,诀窍就是要经常这样做。

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.