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