来自维基百科:
在 k 折交叉验证中,原始样本被随机划分为 k 个大小相等的子样本。
我正在做一个 10 折交叉验证项目。我有一个包含 76 个元素的数据集。这意味着我不能拥有相同大小的分区。
剩余数据的方法是什么(在我的示例 6 数据中)?忽略它们,使数据有 16 个元素,6 个分区有 11 个元素等等?
来自维基百科:
在 k 折交叉验证中,原始样本被随机划分为 k 个大小相等的子样本。
我正在做一个 10 折交叉验证项目。我有一个包含 76 个元素的数据集。这意味着我不能拥有相同大小的分区。
剩余数据的方法是什么(在我的示例 6 数据中)?忽略它们,使数据有 16 个元素,6 个分区有 11 个元素等等?
通常折交叉验证子集的大小大致相等。它们不重叠是至关重要的。
例如,我只是看看 WEKA 做了什么。假设您有个实例和个折叠,那么
r = N \mod k
(N除以k的余数)是剩余记录的数量。前r个分区将有\lfloor N/k \rfloor + 1条记录,其他只有\ lfloor N/k \rfloor
关于你的例子:
前分区将有条记录,其他条记录。
正如 Simone 所说,通常不需要每个折叠的大小完全相同。有 6 个折叠包含 8 条记录,4 个折叠包含 7 条记录是完全合理的。这可能是一个更好的解决方案,而不是有九个大小的七倍并将多余的推入最后一个。
10 折交叉验证通常是一个相当合理的选择,但您应该知道有很多相关方法(请参阅此线程),其中一些可能是更好的选择,具体取决于您的数据集的具体情况。例如,如果您的类非常不平衡,您可能需要考虑分层交叉验证,它试图将类均匀分布在折叠中(例如,如果您有 16 个 A 类示例,理想情况下它们分布在所有 10折叠,而不是集中在折叠 #1 和 #2 中)。
如果您对交叉验证结果进行推断,其他一些方案,如 5x2 CV,也具有相对较好的属性。
您可能想要使用kfoldcv 函数来计算 k 组的样本大小。
kfoldcv(k, N, nlevel=NULL)
Arguments:
k number of groups.
N total sample size.
nlevel a vector of sample sizes for stratified sampling.
您将必须安装该ipred软件包。