交叉验证是否可以替代验证集?


27

在文本分类中,我有一个约800个样本的训练集和一个约150个样本的测试集。测试仪从未使用过,一直等到最后使用。

我正在使用整个800个样本训练集,并在调整和调整分类器和功能时进行10倍交叉验证。这意味着我没有单独的验证集,但是每次用完10折后,都会自动选择一个验证集。

当我对所有事情都感到满意并想要进入评估的最后阶段之后,我将对全部800个样本进行分类训练。并在150个样本测试仪上进行测试。

我理解交叉验证在文本分类中的这种用法正确吗?这种做法有效吗?

交叉验证的另一个问题是:

而不是10倍,我还尝试将其作为性能的一般指标。因为对于遗忘一事,不可能获得有关f1 /精确度/召回率的信息,所以我想知道遗忘一事的准确性与10倍的度量之间的关系是什么?

任何见解将不胜感激。


编辑:

是对交叉验证的很好介绍。它还参考了其他研究论文。


3
留一法估计量是无偏的,而10倍交叉验证往往会给您带来偏见(误差更低)。但是,无偏要付出很大的代价。
blubb

@Simon,我认为这取决于问题的复杂性。是不是
Biostat

@blubb:在某些情况下,LOO可能会有很大的悲观偏见。LOO的差异和10倍CV的单次运行通常非常相似。这里的乐观偏差(误差估计值太低)不是来自重新采样的选择,而是来自交叉验证已经用于数据驱动的优化这一事实。此后,需要另一个独立的验证。那也可能是交叉验证的“外部”循环(没有乐观的偏见!)
cbeleites支持Monica

Answers:


15

您确实正确地描述了使用交叉验证的方法。实际上,您很幸运在最后设置一个合理的验证集,因为通常使用交叉验证来优化模型,但是没有完成“真实的”验证。

正如@Simon Stelling在他的评论中所说,交叉验证将导致较低的估计误差(这是有道理的,因为您不断重复使用数据),但是幸运的是,所有模型都属于这种情况,因此,禁止分类错误(即:仅减少误差)对于“不良”模型,则略有不同;对于“良好”模型,则更多),选择在交叉验证的条件下表现最佳的模型,通常也将是最佳的“真实”模型。

有时用于校正较低误差的方法,特别是在您寻找简约模型时,尤其是选择最小的模型/最简单的方法,其交叉验证的误差在(交叉验证的)最优值的一个SD内。作为交叉验证本身,这是一种启发式方法,因此应谨慎使用(如果这是一种选择:根据调整参数对错误进行绘图:这将使您对是否有可接受的结果有所了解)

考虑到错误的向下偏差,重要的是不要发布交叉验证中的错误或其他性能指标,而不必提及这些来自交叉验证(尽管事实是:我看到太多的出版物没有提及性能指标是通过检查原始数据集的性能获得的---因此提及交叉验证实际上会使您的结果有价值更多)。对于您来说,这不是问题,因为您有一个验证集。

最后警告:如果你的模型拟合在一些接近竞争对手的结果,这是一个好主意,看看他们对您的验证集的演出之后,但千万不能立足于你的最终模型的选择:你可以充分利用这个来抚慰你良心,但在查看验证集之前,必须已选择“最终”模型。

关于您的第二个问题:我相信西蒙已经在您的评论中给出了您需要的所有答案,但是为了使图片更完整:通常,偏差偏差的折衷会起作用。如果您知道平均而言,您将获得正确的结果(无偏),那么通常价格是您每个单独的计算可能与之相去甚远(高方差)。在过去,无偏差是必要的加超值,在当今,无偏差有时会接受(小的)偏差(因此,您甚至不知道计算的平均值会得出正确的结果),如果导致方差较低。经验表明,采用10倍交叉验证可以达到平衡。对您而言,偏差只会是模型优化的一个问题,因为您之后可以(无偏)估计验证集中的条件。因此,没有理由不使用交叉验证。


“但是在查看验证集之前,必须已经选择了“最终”模型。” 真好
Mooncrater
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.