在K折中我们有这个: 你将数据分成k个子集 (大约)相同的大小。你每次离开都会训练净k次 从训练中取出一个子集,但只使用省略的子集 计算你感兴趣的错误标准。如果k等于样本 大小,这称为“留一法”交叉验证。 “离开 - 退出”是一个 更复杂,更昂贵的交叉验证版本 遗漏所有可能的v个子集。
术语培训和测试意味着什么?我无法理解。
请您告诉我一些参考资料,我可以用一个例子来学习这个算法吗?
Train classifier on folds: 2 3 4 5 6 7 8 9 10; Test against fold: 1
Train classifier on folds: 1 3 4 5 6 7 8 9 10; Test against fold: 2
Train classifier on folds: 1 2 4 5 6 7 8 9 10; Test against fold: 3
Train classifier on folds: 1 2 3 5 6 7 8 9 10; Test against fold: 4
Train classifier on folds: 1 2 3 4 6 7 8 9 10; Test against fold: 5
Train classifier on folds: 1 2 3 4 5 7 8 9 10; Test against fold: 6
Train classifier on folds: 1 2 3 4 5 6 8 9 10; Test against fold: 7
Train classifier on folds: 1 2 3 4 5 6 7 9 10; Test against fold: 8
Train classifier on folds: 1 2 3 4 5 6 7 8 10; Test against fold: 9
Train classifier on folds: 1 2 3 4 5 6 7 8 9; Test against fold: 10
答案 0 :(得分:25)
简而言之: 培训是向算法提供反馈的过程,以便调整其产生的分类器的预测能力。
测试是确定算法产生的分类器的实际准确性的过程。在测试期间,分类器被给予从未见过的数据实例,以最终确认分类器的准确性与训练期间的准确性没有显着差异。
然而,您错过了中间的关键步骤:验证(这是您在10倍/ k倍交叉验证中所指的)。
验证(通常)在每个训练步骤之后执行,并且执行该验证以帮助确定分类器是否过度装配。验证步骤不会为算法提供任何反馈,以便调整分类器,但它有助于确定过度拟合是否正在发生,并在训练终止时发出信号。
以下列方式考虑该过程:
1. Train on the training data set.
2. Validate on the validation data set.
if(change in validation accuracy > 0)
3. repeat step 1 and 2
else
3. stop training
4. Test on the testing data set.
答案 1 :(得分:15)
在k-fold方法中,你必须将数据分成k个段,其中k-1用于训练,而一个被省略并用于测试。它完成了k次,第一次,第一段用于测试,剩下的用于训练,然后第二段用于测试,剩下的用于训练,等等。从你的10折的例子可以清楚地看出,它应该很简单,再读一遍。
现在关于培训是什么以及测试是什么:
分类训练是创建分类模型的部分,使用一些算法,用于创建训练模型的流行算法是ID3,C4.5等。
测试意味着通过在测试数据上运行模型来评估分类模型,然后创建混淆矩阵,然后计算模型的准确度和错误率。
在K-fold方法中,创建了k个模型(从上面的描述中可以清楚地看到),并且选择了最准确的分类模型。