k倍交叉验证中的方差估计


27

K折交叉验证可用于估计给定分类器的泛化能力。我是否可以(也应该)从所有验证运行中计算出汇总的方差,以便更好地估计其方差?

如果没有,为什么?

我发现了在交叉验证运行中确实使用汇总标准差的论文。我还发现有论文明确指出,对于验证方差没有统一的估计。但是,我也发现了一些论文,这些论文显示了一些泛化误差的方差估计量(我仍在阅读并尝试理解这一点)。人们在实践中实际上做什么(或举报)?

编辑:当使用CV来衡量粗略的分类错误(即,一个样本已正确标记或未标记;例如,真或假)时,谈论合并方差可能没有任何意义。但是,我所说的是我们估计的统计量确实定义了方差的情况。因此,对于给定的倍数,我们最终可以得到统计值和方差估计值。丢弃此信息并仅考虑平均统计数据似乎是不正确的。虽然我知道我可以使用自举方法构建方差估计,但是(如果我不是很错的话)这样做仍然会忽略倍数方差,仅考虑统计估计(并且需要更多的计算能力)。


您是否考虑了两种可能的方法来计算方差,以查看它们是否存在很大差异?
zeferino'7

是的,我做到了。在某些实验中,训练样本的方差和合并方差之间存在大约一个数量级的变化。验证样本没有太大差异。较大的变化似乎与精度较低的模型有关。
塞萨尔(Cesar)2012年

1
@Cesar:很好的观察:您的模型非常不稳定(迭代之间的高方差)。在分类中(除非分类器比猜测差),不稳定的预测将导致错误的预测。为此的说明性想法是,与正确预测的偏差将总是在“错误”方向上,没有太高会以太低抵消。
cbeleites支持Monica 2012年

1
@cbeleites:那会不会有点期望,因为大的方差变化主要发生在显示更高错误率的模型上?顺便说一句,很好的更新您的答案。我仍然必须更仔细地阅读它,但我已经非常感谢。谢谢。
Cesar 2012年

1
@Cesar:谢谢。当然可以预见,一种较少说明性的方式来说明比例的方差公式(请参见我的答案):真实错误率越极端,方差越小,最大方差就是错误率= 50%。
cbeleites支持Monica 2012年

Answers:


13

一个非常有趣的问题,我将不得不阅读您提供的论文...但这也许会使我们朝着一个答案的方向迈进:

我通常以一种非常务实的方式解决这个问题:我使用新的随机分割来迭代k倍交叉验证,并像每次迭代一样计算性能。这样,每次迭代的总体测试样本都是相同的,差异来自数据的不同拆分。

我将其报告为观察到的性能的第5至95个百分位。最多交换样本用于新样本,并进行讨论以作为模型不稳定性的度量。nk1

旁注:无论如何,我无法使用需要样本量的公式。由于我的数据是聚类的或层次结构的(对同一案例进行多次相似但不重复的测量,通常是同一样本的数百个不同位置),所以我不知道有效的样本量。

与自举的比较:

  • 迭代使用新的随机分割。

  • 主要区别是使用(bootstrap)或不使用(cv)替换进行重新采样。

  • 计算成本大致相同,因为我选择的cv迭代次数不等于 bootstrap迭代次数/ k的近似值,即计算相同的模型总数。

  • 引导程序在某些统计属性方面比cv有优势(渐近正确,可能需要较少的迭代以获得良好的估计)

  • 但是,使用cv的好处是可以保证

    • 所有模型的不同训练样本的数量均相同(如果要计算学习曲线,则很重要)
    • 每个样本在每次迭代中仅测试一次
  • 一些分类方法将丢弃重复的样本,因此自举没有意义

表现差异

简短的回答:是的,在只有{0,1}个结果的情况下谈论方差确实有意义。

看一下二项式分布(k =成功,n =测试,p =成功的真实概率=平均k / n):

σ2(k)=np(1p)

比例的差异(例如命中率,错误率,灵敏度,TPR等),从现在开始我将使用,在测试中观察值使用)是一个充满整本书的主题。 。pp^

  • Fleiss:费率和比例的统计方法
  • Forthofer and Lee:《生物统计学》有一个很好的介绍。

现在,,因此:p^=kn

σ2(p^)=p(1p)n

这意味着测量分类器性能的不确定性仅取决于测试模型的真实性能p和测试样本的数量。

在交叉验证中,您假设

  1. k个“代理”模型的真实性能与通常根据所有样本构建的“真实”模型相同。(此假设的细分是众所周知的悲观偏见)。

  2. k个“代理”模型具有相同的真实性能(等效,具有稳定的预测),因此您可以汇总k个测试的结果。
    当然,不仅可以合并一个cv迭代的k个“代理”模型,而且可以合并k倍cv的i个迭代的ki个模型。

为什么要迭代?

迭代告诉您的主要内容是模型(预测)的不稳定性,即同一样本的不同模型的预测的方差。

您可以将不稳定性直接报告为给定测试用例的预测方差,而不管预测是正确的还是间接地作为不同的cv迭代的的方差。p^

是的,这是重要的信息。

现在,如果您的模型非常稳定,则对于给定样本,所有或都会产生完全相同的预测。换句话说,所有迭代将具有相同的结果。估计的方差不会被迭代减少(假设)。在这种情况下,满足上面的假设2,并且您仅受约束,其中n是所有样本中被测试的总数简历的k折。 在那种情况下,不需要迭代(除了为了证明稳定性之外)。 ķ Ñ Ë ř Ç v Ñ - 1 Ñ σ 2p= p 1 - p nbootstrapkniter. cvn1nσ2(p^)=p(1p)n

然后,您可以从测试中观察到的成功次数中,为真实性能构造置信区间。因此,严格来说,如果报告了和,则无需报告方差不确定性。但是,在我的领域中,没有多少人意识到这一点,甚至没有一个直观的方法来把握样本量的不确定性有多大。因此,我建议无论如何都要报告它。ķ Ñ p Ñpknp^n

如果您观察到模型不稳定性,则合并平均值是对实际性能的更好估计。迭代之间的方差是重要的信息,您可以将其与大小为n的测试集的预期最小方差进行比较,并在所有迭代中获得真实的平均性能。


您要进行新的随机拆分,然后进行替换,例如在引导程序中进行迭代?还是您多次重复k倍交叉验证?这很有趣,因为它看起来不像引导程序,但可能会像这样工作。但是,您执行多少次复制?这很容易造成很高的代价。
塞萨尔(Cesar)2012年

@Cesar:它与引导程序非常相似,请参见扩展答案。
cbeleites支持Monica 2012年

CV如何为每个模型留下“相同数量的不同训练样本”,而自举却没有?我不理解,因为CV“复制数据集”是观察值的不同组合-它们怎么可能提供相同数量的不同观察值?也许您假设每条记录在原始训练集中都是不同的?
概率

@probabilityislogic:CV复制数据集小于原始数据集。因此,即使没有重新采样也可以产生不同的这种重复。通过替换进行重采样,您可以多次绘制同一条记录。因此,唯一记录的数量可以变化。是的,我认为原始记录是不同的。为了保持对许多应用程序至关重要的统计独立性,应在数据层次结构的最高级别进行重采样。(例如,我处理每个患者有数百行的患者数据=>对患者重新采样)
cbeleites支持Monica 2013年

1
估计方差(然后具有置信区间)的问题是交叉验证模型和测试(在迭代中)不是独立的:最终,您只有独立的案例。模型完全不应该是独立的-实际上,通常的CV评估假定它们是相等的。但是,无论您进行了多少次迭代,每种情况都已经在第一次迭代中经过了测试。总是有一个问题,您的小型数据集的代表性如何。n
cbeleites支持Monica 2014年

1

请记住,CV仅是估计值,永远不能代表“真实的”泛化误差。根据样本大小(这将影响折叠数或折叠大小),计算泛化误差分布的任何参数估计值的能力可能会受到严重限制。在我看来(我已经在各种教科书《支持向量机的知识发现》 -Lutz Hamel中看到了它的名称),可以做一些CV的自举变量来估算泛化误差的分布,但是标准的10- 1(例如)一旦关闭CV,将无法为您提供足够的数据点来推断真正的gen-error。自举要求您从训练/测试/测试中获取多个样本并进行替换,以有效地进行多个(例如1000左右)10-1(或其他任何形式)的CV测试。然后,您可以将每个CV测试的平均值样本分布作为CV错误总体平均值采样分布的估计值,然后可以估算分布参数,例如均值,中位数,std min max Q1 Q3等。这是一项工作,我认为只有在您的应用程序重要/危险足以保证额外工作的情况下才真正需要。例如,也许在一个营销环境中,企业只是乐于比随机性更好,然后可能不需要。但是,如果您要评估患者对高风险药物的反应或预测大型投资的预期收入,则最好谨慎进行。


这是一个估计,但实际上可以说是对统计的任何使用。但是,当每个折叠都已经有方差估计时,丢弃此信息似乎是不正确的。我已经澄清了这个问题。
塞萨尔(Cesar)2012年

也许我不明白。我真的不明白您为什么要为单折的差异而烦恼?
clancy 2012年

对于我要解决的特定问题,运行单个10折CV并不便宜。您是正确的,我可以通过像引导程序中那样替换多个样本来估计方差。但是,就我而言,使用大量简历(甚至几百个)可能是非常不切实际的。我正在寻找一种方法(如果有的话)来组合单个倍数方差估计值,这样我至少可以减少所需的引导程序样本数量。而且,好奇心。
Cesar 2012年

啊好吧。也许然后这10个均值中的每一个均值相对于总均值均值的方差将是一个随机变量,是从抽样分布中选择的方差...(我认为是chi dist或F dist)
clancy

@clancy:对于10-1,您是说n = 10个样本的留空简历吗?请注意,对于留一遍的迭代没有意义。
cbeleites支持Monica 2012年
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.