交叉验证分类准确度的置信区间

机器算法验证 分类 置信区间 交叉验证 matlab
2022-03-01 19:37:45

我正在研究计算两个输入 X 射线图像之间的相似性度量的分类问题。如果图像是同一个人(标签为“正确”),则将计算更高的度量;两个不同人的输入图像(“错误”标签)将导致较低的度量。

我使用分层 10 折交叉验证来计算误分类概率。我当前的样本量约为 40 个正确匹配项和 80 个错误匹配项,其中每个数据点都是计算的指标。我得到的错误分类概率为 0.00,但我需要对此进行某种置信区间/错误分析。

我正在研究使用二项式比例置信区间(我将使用交叉验证的结果作为正确标签或不正确标签来表示我的成功次数)。但是,二项式分析背后的假设之一是每次试验的成功概率相同,我不确定交叉验证中“正确”或“错误”分类背后的方法是否可以认为有相同的成功概率。

我能想到的唯一其他分析是重复交叉验证 X 次并计算分类错误的均值/标准差,但我不确定这是否合适,因为我将重用我的数据相对较小的样本量数倍。

有什么想法吗?我使用 MATLAB 进行所有分析,并且我有统计工具箱。将不胜感激任何和所有的帮助!

3个回答

不稳定性对不同替代模型预测的影响

但是,二项式分析背后的假设之一是每次试验的成功概率相同,我不确定交叉验证中“正确”或“错误”分类背后的方法是否可以认为有相同的成功概率。

好吧,通常,等价性是一个假设,也需要允许您汇集不同代理模型的结果。

在实践中,您认为可能违反此假设的直觉​​通常是正确的。但是您可以衡量是否是这种情况。这就是我发现迭代交叉验证很有帮助的地方:不同代理模型对同一案例的预测稳定性让您可以判断模型是否等效(稳定预测)。

这是一个迭代(又名重复)折交叉验证的方案:k
迭代 k 折交叉验证

类是红色和蓝色。右边的圆圈象征着预测。在每次迭代中,每个样本只被预测一次。通常,总平均值用作性能估计,隐含地假设代理模型的性能是相等的。如果您在不同代理模型(即跨列)所做的预测中查找每个样本,您可以看到该样本的预测有多稳定。ik

您还可以计算每次迭代的性能(图中 3 行的块)。这些之间的任何差异都意味着不满足代理模型等价的假设(彼此等价,此外还与建立在所有案例上的“大模型”等价)。但这也告诉你你有多少不稳定性。对于二项式比例,我认为只要真实性能相同(即是否总是错误预测相同的情况或是否错误预测相同数量但不同的情况)。我不知道是否可以明智地假设代理模型的性能具有特定分布。但我认为,如果您完全报告这种不稳定性,那么无论如何它都比目前常见的分类错误报告更有优势。k个代理模型,不稳定性方差大约是迭代之间观察到的方差的k

我通常需要处理远远少于 120 个独立案例,所以我对我的模型进行了非常强大的正则化。然后我通常能够证明不稳定性方差是比有限测试样本量方差。(而且我认为这对于建模是明智的,因为人类倾向于检测模式,因此倾向于构建过于复杂的模型,从而过度拟合)。 我通常报告在迭代(以及)上观察到的不稳定性方差的百分位数以及有限测试样本大小的平均观察到的性能的二项式置信区间。
nki

该图是图的较新版本。本文第 5 篇:Beleites, C. 和 Salzer, R.:评估和改进小样本情况下化学计量模型的稳定性,Anal Bioanal Chem, 390, 1261-1271 (2008)。DOI: 10.1007/s00216-007-1818-6
请注意,当我们写这篇论文时,我还没有完全意识到我在这里解释的不同的方差来源——请记住这一点。因此我认为论证对于有效的样本量估计,假设是不正确的,即使每个患者体内不同组织类型贡献的总体信息与具有给定组织类型的新患者一样多的应用结论可能仍然有效(我有一个完全不同类型的证据也指出了这一点)。但是,我还不能完全确定这一点(也不知道如何做得更好,从而能够检查),而且这个问题与你的问题无关。


二项式置信区间使用哪种性能?

到目前为止,我一直在使用平均观察到的性能。您还可以使用观察到的最差性能:观察到的性能越接近 0.5,方差越大,因此置信区间越大。因此,观察到的性能最接近 0.5 的置信区间为您提供了一些保守的“安全边际”。

请注意,如果观察到的成功次数不是整数,一些计算二项式置信区间的方法也可以使用。我使用
罗斯,TD 中所述的“贝叶斯后验概率积分”:二项式比例和泊松率估计的准确置信区间,Comput Biol Med,33, 509-531 (2003)。DOI: 10.1016/S0010-4825(03)00019-2

(我不知道 Matlab,但在 R 中,您可以将binom::binom.bayes两个形状参数都设置为 1)。


这些想法适用于基于训练数据集产量的未知新案例的预测模型。的新训练样本上训练的模型有多少不同。(除了获得“物理上”的新训练数据集外,我不知道该怎么做)n

另见:Bengio, Y. 和 Grandvalet, Y.:K 折交叉验证方差的无偏估计,机器学习研究杂志,2004, 5, 1089-1105

(更多地考虑这些事情在我的研究待办事项清单上......,但由于我来自实验科学,我喜欢用实验数据补充理论和模拟结论 - 这在这里很困难,因为我需要大量一组用于参考测试的独立案例)


更新:假设生物群分布是否合理?

我看到 k-fold CV a 类似于下面的投掷硬币实验:不是多次投掷一枚硬币,而是同一台机器生产的在这张照片中,我认为@Tal 指出硬币不一样。这显然是真的。我认为应该做什么和可以做什么取决于代理模型的等价假设。k

如果代理模型(硬币)之间实际上存在性能差异,则代理模型等效的“传统”假设不成立。在这种情况下,不仅分布不是二项式(正如我上面所说,我不知道要使用什么分布:它应该是每个代理模型/每个硬币的二项式总和)。但是请注意,这意味着不允许合并代理模型的结果。测试的二项式也不是一个好的近似值(我试图通过说我们有一个额外的变化来源:不稳定性来改进近似值),也不能在没有进一步证明的情况下将平均性能用作点估计。n

另一方面,如果代理的(真实)表现是相同的,那就是我的意思是“模型是等效的”(一个症状是预测是稳定的)。测试的二项分布应该可以使用:我认为在这种情况下,我们有理由将代理模型的真实 s 近似为相等,因此将测试描述为相当于投掷一枚硬币次。npn

我认为您多次重复交叉验证的想法是正确的。

重复您的 CV 假设 1000 次,每次以不同的方式将您的数据分成 10 个部分(对于 10 倍 CV)(不要打乱标签)。您将获得 1000 个分类准确度的估计值。当然,您将重复使用相同的数据,因此这 1000 个估计不会是独立的。但这类似于引导程序:您可以将这些准确度的标准偏差作为整体准确度估计器的平均值的标准误差。或 95% 百分位区间作为 95% 置信区间。

或者,您可以结合交叉验证循环和引导循环,并简单地选择随机(可能是分层随机)10% 的数据作为测试集,并执行 1000 次。与上述相同的推理也适用于此。但是,这会导致重复次数的差异更大,所以我认为上述程序更好。

如果您的错误分类率为 0.00,那么您的分类器会产生零错误,如果这种情况发生在每次引导迭代中,您将获得零宽置信区间。但这仅仅意味着你的分类器非常完美,对你有好处。

分类错误既是不连续的,也是不正确的评分规则。它的精度低,优化它会选择错误的特征并赋予它们错误的权重。