为什么研究人员使用10倍交叉验证而不是在验证集上进行测试?


23

我已经阅读了很多有关情感分类和相关主题的研究论文。

他们中的大多数使用10倍交叉验证来训练和测试分类器。这意味着没有单独的测试/验证。这是为什么?

这种方法的优点/缺点是什么,尤其是对于那些从事研究的人员而言?


3
您确定没有单独进行测试吗?
Douglas Zare 2013年

Answers:


17

如果CV是嵌套的,这不是问题,即所有优化,特征选择和模型选择(无论它们本身是否使用CV)都包装在一个大CV中。

与拥有额外的验证集相比,这有何不同?尽管验证集通常只是整个数据中或多或少随机选择的一部分,但它仅等效于CV的一次迭代。为此,实际上这是一种较差的方法,因为(希望)通过幸运的/不幸的选择或精心挑选的验证集可以很容易地使它产生偏差。

唯一的例外是时间序列和其他数据,其中对象顺序很重要。但是无论哪种方式都需要特殊对待。


16

主要原因是k折交叉验证估算器的方差比单个保留集估算器的方差低,如果可用数据量有限,这可能非常重要。如果您有一个单一的保留集,其中90%的数据用于训练,而10%的数据用于测试,则测试集非常小,因此不同数据样本的性能估算值会有很大差异,或针对数据的不同分区来形成训练和测试集。k倍验证通过对k个不同的分区求平均值来减少这种差异,因此性能估计对数据的分区不太敏感。您可以通过重复的k倍交叉验证来走得更远,在交叉验证中,交叉验证是使用数据的不同分区来形成k个子集,

但是请注意,模型拟合过程的所有步骤(模型选择,特征选择等)必须在交叉验证过程的每一步中独立执行,否则最终的性能估计将产生偏差。


9

[根据评论编辑]

我认为如果使用CV结果在多个模型中进行选择会出现问题。

CV允许您使用整个数据集来训练和测试一种模型/方法,同时能够合理地了解其概括性。但是,如果要比较多个模型,我的直觉是模型比较会用CV为您提供的额外训练测试隔离级别,因此最终结果将不是对所选模型准确性的合理估计。

因此,我想如果您创建多个模型并基于其CV选择一个模型,那么您对所发现的内容会过于乐观。需要另一个验证集来查看获胜者的综合程度。


谢谢。那就对了。但是我的问题特别是关于为什么研究论文缺乏最终验证?有适当的理由吗?是要减少数据量,还是因为CV可以很好地工作并且不需要单独的验证?
user18075

5
ÿ

7
  • 根据我的经验,主要原因通常是您没有足够的样本。
    在我的领域(生物/医学样品的分类)中,有时将测试集分开放置,但通常只包含少数情况。在那种情况下,置信区间通常太宽而无用。

  • 重复/迭代交叉验证或引导外验证的另一个优点是,您可以构建一堆“代理”模型。假定它们相等。如果不是,则模式不稳定。实际上,您可以通过比较代理模型本身或不同代理模型针对同一案例做出的预测来衡量这种不稳定性(相对于交换一些训练案例)。

  • Esbensen&Geladi的这篇论文很好地讨论了交叉验证的一些局限性。
    您可以解决其中的大多数问题,但是重采样验证无法解决的一个重要问题是漂移,它与mbq的观点有关:

    唯一的例外是时间序列和其他数据,其中对象顺序很重要

    漂移意味着例如仪器的响应/真实校准随时间缓慢变化。因此,未知案例的泛化误差可能与未来未知案例的泛化误差不同。如果在验证过程中发现漂移,则会出现诸如“每天/每周/ ...重做校准”之类的说明,但这需要在训练数据之后系统地获取测试集。
    (如果您按照实验计划进行实验,则可以进行“特殊”拆分,考虑到采集时间,但是通常这并不能覆盖您想要进行漂移检测所需的时间)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.