一个非常有趣的问题,我将不得不阅读您提供的论文...但这也许会使我们朝着一个答案的方向迈进:
我通常以一种非常务实的方式解决这个问题:我使用新的随机分割来迭代k倍交叉验证,并像每次迭代一样计算性能。这样,每次迭代的总体测试样本都是相同的,差异来自数据的不同拆分。
我将其报告为观察到的性能的第5至95个百分位。最多交换样本用于新样本,并进行讨论以作为模型不稳定性的度量。nk−1
旁注:无论如何,我无法使用需要样本量的公式。由于我的数据是聚类的或层次结构的(对同一案例进行多次相似但不重复的测量,通常是同一样本的数百个不同位置),所以我不知道有效的样本量。
与自举的比较:
迭代使用新的随机分割。
主要区别是使用(bootstrap)或不使用(cv)替换进行重新采样。
计算成本大致相同,因为我选择的cv迭代次数不等于 bootstrap迭代次数/ k的近似值,即计算相同的模型总数。≈
引导程序在某些统计属性方面比cv有优势(渐近正确,可能需要较少的迭代以获得良好的估计)
但是,使用cv的好处是可以保证
- 所有模型的不同训练样本的数量均相同(如果要计算学习曲线,则很重要)
- 每个样本在每次迭代中仅测试一次
一些分类方法将丢弃重复的样本,因此自举没有意义
表现差异
简短的回答:是的,在只有{0,1}个结果的情况下谈论方差确实有意义。
看一下二项式分布(k =成功,n =测试,p =成功的真实概率=平均k / n):
σ2(k)=np(1−p)
比例的差异(例如命中率,错误率,灵敏度,TPR等),从现在开始我将使用,在测试中观察值使用)是一个充满整本书的主题。 。pp^
- Fleiss:费率和比例的统计方法
- Forthofer and Lee:《生物统计学》有一个很好的介绍。
现在,,因此:p^=kn
σ2(p^)=p(1−p)n
这意味着测量分类器性能的不确定性仅取决于测试模型的真实性能p和测试样本的数量。
在交叉验证中,您假设
k个“代理”模型的真实性能与通常根据所有样本构建的“真实”模型相同。(此假设的细分是众所周知的悲观偏见)。
k个“代理”模型具有相同的真实性能(等效,具有稳定的预测),因此您可以汇总k个测试的结果。
当然,不仅可以合并一个cv迭代的k个“代理”模型,而且可以合并k倍cv的i个迭代的ki个模型。
为什么要迭代?
迭代告诉您的主要内容是模型(预测)的不稳定性,即同一样本的不同模型的预测的方差。
您可以将不稳定性直接报告为给定测试用例的预测方差,而不管预测是正确的还是间接地作为不同的cv迭代的的方差。p^
是的,这是重要的信息。
现在,如果您的模型非常稳定,则对于给定样本,所有或都会产生完全相同的预测。换句话说,所有迭代将具有相同的结果。估计的方差不会被迭代减少(假设)。在这种情况下,满足上面的假设2,并且您仅受约束,其中n是所有样本中被测试的总数简历的k折。
在那种情况下,不需要迭代(除了为了证明稳定性之外)。 ķ ⋅ Ñ 我吨Ë ř 。Ç v Ñ - 1 ≈ Ñ σ 2(p)= p (1 - p )nbootstrapk⋅niter. cvn−1≈nσ2(p^)=p(1−p)n
然后,您可以从测试中观察到的成功次数中,为真实性能构造置信区间。因此,严格来说,如果报告了和,则无需报告方差不确定性。但是,在我的领域中,没有多少人意识到这一点,甚至没有一个直观的方法来把握样本量的不确定性有多大。因此,我建议无论如何都要报告它。ķ Ñ p Ñpknp^n
如果您观察到模型不稳定性,则合并平均值是对实际性能的更好估计。迭代之间的方差是重要的信息,您可以将其与大小为n的测试集的预期最小方差进行比较,并在所有迭代中获得真实的平均性能。