在k-fold-cross验证中,我们是一次一个地在(k-1)子集上训练算法还是在组合(k-1)子集上训练算法?

时间:2013-06-04 07:30:57

标签: r machine-learning cross-validation

我的意思是说,我可以说我有10个训练集的子集(set1, set2,.....set10)。为了执行10倍的简历,根据我的说法,我应该在rbind(set2,set3.....set9,set10)上训练我的算法并在set1上进行测试。然后我将在rbind( set1,set3,set4,....set10)上训练并在set2上进行测试,依此类推。我是对的吗?

我感觉我们在set2set3 .... set10上逐一训练算法并在set1上进行测试。这样我们在set1上有9组预测,然后我们就可以对它进行平均。哪一个是正确的方法?

非常感谢任何帮助。

谢谢。

2 个答案:

答案 0 :(得分:0)

您理解一组是我们用于测试的,并且用于测试的组合剩余组是正确的。

请参考问题和第二个答案@ 10 fold cross validation

答案 1 :(得分:0)

情况类似于此处描述的情况:

enter image description here

作为旁注,如果你注意你的班级(待预测)的先验概率在所有(set1, set2,.....set10)中大致相等,你会更好。

这称为分层k倍交叉验证,选择折叠使得平均响应值在所有折叠中大致相等。在二分类的情况下,这意味着每个折叠包含两种类型标签的大致相同的比例。