留一法交叉验证如何工作?如何从不同的模型中选择最终模型?


25

我有一些数据,我想根据这些数据建立模型(例如线性回归模型)。下一步,我想在模型上应用“留一法”交叉验证(LOOCV),以便了解其性能。

如果我对LOOCV的理解正确,那么我将使用除该样本(训练集)之外的每个样本为每个样本(测试集)建立一个新模型。然后,我使用该模型预测测试集并计算误差。预料到的-实际

在下一步中,我汇总使用所选函数生成的所有误差,例如均方误差。我可以使用这些值来判断模型的质量(或拟合优度)。

问题:这些质量值适用的模型是哪个模型,因此,如果我发现从LOOCV生成的度量适合我的情况,我应该选择哪个模型?LOOCV研究了种不同的模型(其中是样本量);我应该选择哪种型号?ññ

  • 是使用所有样本的模型吗?在LOOCV流程中从未计算过该模型!
  • 是误差最小的模型吗?

Answers:


24

最好将交叉验证视为一种估计由特定过程生成的模型而不是模型本身的泛化性能的方法。留一法交叉验证本质上是对在个数据样本上训练的模型的泛化性能的估计,通常是对在样本上训练的模型的性能的稍微悲观的估计。ñ-1个ñ

与其选择一个模型,不如做的是使模型适合所有数据,并使用LOO-CV为该模型的性能提供稍微保守的估计。

但是请注意,LOOCV具有很大的方差(如果使用不同的随机数据样本,则您获得的值将有很大的不同),这通常使它成为性能评估估计器的错误选择,即使它近似无偏。我一直在使用它进行模型选择,但这实际上只是因为它很便宜(对于我正在研究的内核模型来说几乎是免费的)。


感谢您的回答。这句话不是“使用LOO-CV为该模型的性能提供稍微保守的估计”。一般情况是错的吗?如果再增加一点,模型可能会变得更糟,在这种情况下,LOO-CV可能是一个。乐观的估计
theomega

1
通常,用于构建模型的数据越多,模型可能越好。尽管附加点可能会使模型更糟,但更有可能使模型更好。因此,一般而言,loocv会有一些悲观的偏见,但只是非常轻微,因此,LOOCV估计量的方差通常是一个更大的考虑因素。
迪克兰有袋博物馆,2012年

那么应该使用什么进行绩效评估?(假设数据收集非常昂贵,因此您想使用所有可用数据来拟合模型)。
杂耍节目Bob

引导程序可能。我使用的大多数模型都有需要调整的正则化参数等,因此我经常使用LOOCV调整模型并进行引导或反复进行性能评估。
迪克兰有袋动物

@DikranMarsupial您确定“留一生”简历会带来悲观的偏见吗?据我所知,它通常提供比K-Fold更低的误差估计。另外,LOOCV是否没有0方差?您只能执行一次LOOCV,然后“样本用完”。我能想到的唯一差异是用于拟合模型的训练算法所产生的差异。但这应该与最佳参数的方差有关,而与模型误差本身无关。谢谢。
D1X
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.