10倍交叉验证,样本大小不是10

时间:2015-08-31 07:08:07

标签: machine-learning cross-validation

我看到在数据集上使用10倍交叉验证的论文,这些数据集的样本数量与10不相同。

我找不到他们解释他们如何选择每个子集的情况。

我的假设是他们在某种程度上使用了重新取样,但如果是这种情况,则样本可能会出现在两个子集中,从而偏向模型。

论文例如:http://www.biomedcentral.com/1471-2105/9/319

是否建议执行以下操作;

  • 如果样本量为86,则将8个样本作为保留集。
  • 使用剩余的样本进行训练。
  • 重复10次。

这样做就可以了,所以每个样本都是一个训练集,但只有80/86个样本被用作保留,并且没有偏见让它在训练和保持集中都出现。

任何见解都将受到赞赏。

1 个答案:

答案 0 :(得分:4)

您希望折叠具有相同的尺寸,或尽可能接近相等。

要执行此操作,如果您有86个样本且想要使用10倍CV,则第一个86 % 10 = 6折叠的大小为86 / 10 + 1 = 9,其余的将具有{{1} }}:

86 / 10 = 8

一般情况下,如果您有6 * 9 = 54 4 * 8 = 32 + -------------- 86 个样本和n个折叠,您希望执行scikit-learn does

  

前n%n_folds折叠的大小为n // n_folds + 1,其他折叠的大小为n // n_folds。

注意:n_folds代表整数除法

我不知道对此有适当的科学参考,但它似乎是惯例。有关相同的建议,请参阅this questionthis one。至少有两个主要的机器学习库就是这样做的。