交叉验证如何用于测试?

时间:2013-11-19 15:19:54

标签: machine-learning

所以我在理解交叉验证如何在机器学习中进行模型构建时遇到了一些麻烦。

假设我有一个包含100个样本的数据集,并且我执行了10次交叉验证。

根据我的理解,我将数据集拆分为10组,并将其中9组用于训练和测试其中一组。

最后,我将有10个不同的分类器,以及整个数据集的预测结果。

我如何使用这些结果测试新的第101个样本?

之前有人告诉我,这10个不同的分类器只是平均的,结果用于测试新的数据点,但这究竟是如何完成的?是否所有10个分类器都在新的数据点上运行,最后的置信度值是否平均得到最后一个用于分类?或者10个生成的分类器以某种方式聚合成一个?我认为这是第二种情况,但现在我想到了我不确定你将如何“组合”不同的分类器。

2 个答案:

答案 0 :(得分:2)

交叉验证用于验证您的学习算法能够推广到看不见的数据,即如果您的交叉验证能够在您的测试折叠中获得良好的结果。

一旦确定,您可以使用整个训练集来训练模型并将其应用于新数据。

当您对10种不同数据训练的分类器进行平均时,您所描述的内容有点像Bootstrapping,其中您将不同的弱学习者组合成一个强大的学习者。请注意,这通常意味着不同的学习者,而不是一个通过不同数据培训的学习者。

答案 1 :(得分:2)

验证用于模型选择。如果你有M个模型,那么分类误差最小的模型是m,其中

0<m<=M

,样本外错误不会超过验证错误Eval plus

sqrt(log(M)/K)

,在你的情况下K = N / 10.

交叉验证用于将10个获得的验证错误平均为Eval。

确定模型m后,您将使用所有样本数据进行培训。