libsvm中的Holdout与K折叠交叉验证

问题描述 投票:1回答:2

我正在使用libsvm进行分类任务。我有10倍交叉验证,其中F1得分为0.80。但是,当我将训练数据集分成两个(一个用于训练而另一个用于测试,我将其称为保持测试集)时,F1得分降至0.65。分割比例为.8至.2。

那么,我的问题是,在进行k折交叉验证与保持测试之间是否有任何显着差异?这两种技术中的哪一种会产生一种概括良好的模型?在这两种情况下,我的数据集都会缩放。

machine-learning libsvm cross-validation
2个回答
5
投票

存在巨大差异,但精确分析需要大量统计数据。如需深入了解,请参阅Hastie,Tibshirani和Friedman撰写的The Elements of Statistical Learning: Data Mining, Inference, and Prediction

简而言之 :

  • 单列车测试分割是模型质量的不可靠测量(除非你有非常大的数据集)
  • 考虑到训练集可以代表基础分布,重复训练分裂会收敛到真实分数,但在实践中它们往往过于乐观
  • 与列车测试分割相比,CV往往会给出较低的模型质量分数,并且可以更快地为您提供合理的答案,但代价是计算复杂度更高。
  • 如果您有大量数据(> 50 000个样本),那么列车测试分割可能就足够了
  • 如果你有足够的时间,CV几乎总是一种更好(不太乐观)的方法来衡量分类器的质量
  • 除了这两个方法之外还有更多方法,您可能还想查看err0.632系列中的方法(bootstrap)

0
投票

不同之处在于使用了一个分割,如果你尝试另一种方法将数据分成训练/测试(可能是通过改组),你会得到另一个值。因此,创建多个集合并对所有F1分数求平均值将得到相当于CV的结果。而CV更好地概括。

© www.soinside.com 2019 - 2024. All rights reserved.