前言
这是一个很长的帖子。如果您正在重新阅读本文档,请注意,尽管背景材料保持不变,但我已经修改了问题部分。此外,我相信我已经设计出解决该问题的方法。该解决方案显示在帖子的底部。感谢CliffAB指出我的原始解决方案(从该帖子中编辑;请参阅该解决方案的编辑历史)必定产生了偏差估计。
问题
在机器学习分类问题中,评估模型性能的一种方法是通过比较ROC曲线或ROC曲线下的面积(AUC)。但是,据我观察,对ROC曲线的可变性或AUC的估计很少进行讨论。也就是说,它们是根据数据估算的统计信息,因此存在一些与之相关的错误。表征这些估计中的误差将有助于表征,例如,一个分类器是否确实优于另一个分类器。
为了解决这个问题,我开发了以下方法(称为ROC曲线的贝叶斯分析)。我对这个问题的思考有两个主要观察结果:
ROC曲线由来自数据的估计数量组成,并且适合贝叶斯分析。
ROC曲线是通过将真实的阳性率对于假阳性率绘制而成的,每个假性率本身都是根据数据估算的。我考虑和函数,用于从B对A类进行排序的决策阈值(随机森林中的树票,SVM中距超平面的距离,逻辑回归中的预测概率等)。改变决策阈值值将返回和不同估计值。此外,我们可以考虑˚F P - [R (θ )Ť P ř ˚F P - [R θ θ Ť P ř ˚F P ř Ť P - [R (θ )Ť P在一系列的伯努利试验中估计成功的可能性。实际上,TPR定义为它也是成功且总试验中二项式成功概率的MLE 。TPTP+FN>0
因此,通过将和的输出视为随机变量,我们面临着一个估计二项式实验成功概率的问题,在该二项式实验中,成功和失败的数目是确切已知的(给定通过,,和,我假设都是固定的)。按照惯例,仅使用MLE,并假设TPR和FPR对于特定值是固定的˚F P - [R (θ )Ť P ˚F P ˚F Ñ Ť Ñ θ θ。但是在我对ROC曲线的贝叶斯分析中,我绘制了ROC曲线的后验模拟,这是通过从ROC曲线上的后验分布中抽取样本来获得的。针对该问题的标准贝叶斯模型是在成功概率上具有beta优先级的二项式可能性。成功概率的后验分布也是beta,因此对于每个,我们都有TPR和FPR值的后验分布。这使我们进入了第二个观察。
- ROC曲线不变。因此,一旦对和某个值进行了采样,则在采样点的ROC空间“东南”采样点的概率为零。但是形状受限的采样是一个难题。F P R (θ )
贝叶斯方法可用于从一组估计中模拟大量AUC。例如,与原始数据相比,有20个模拟看起来像这样。
该方法具有许多优点。例如,可以通过比较其后验模拟的AUC来直接估计一个模型的AUC大于另一个模型的AUC的概率。可以通过模拟获得方差估计值,该估计值比重采样方法便宜,并且这些估计值不会引起因重采样方法而引起的相关样本的问题。
解
除了上述两个方面之外,我还通过对问题的性质进行了第三次和第四次观察来开发了此问题的解决方案。
F P R (θ )和具有适合模拟的边际密度。
如果(vice)是具有参数和(vice和)的beta分布随机变量,我们还可以考虑TPR的密度在几个不同值上的平均值与我们的分析相对应的。也就是说,我们可以考虑一个分级过程,其中一个是从我们的样本外模型预测中获得的值集合中采样值,然后对。所得样本的分布˚F P - [R (θ )Ť P ˚F Ñ ˚F P Ť Ñ θ 〜θ θ Ť P - [R (〜 θ)Ť P - [R (〜 θ)θ Ť P - [R (θ )c ^ θ 1 / ç值是真实正率的密度,它不受本身的条件。因为我们假设的beta模型,所以结果分布是beta分布的混合,其分量等于我们的集合的大小,并且混合系数为。
在此示例中,我在TPR上获得了以下CDF。值得注意的是,由于其中一个参数为零的beta分布的简并性,某些混合成分在0或1处为Dirac delta函数。这就是导致在0和1处突然出现尖峰的原因。这些“尖峰”表示这些密度既不是连续的也不是离散的。选择在两个参数中都为正的先验将具有“平滑”这些突然尖峰的效果(未显示),但是最终的ROC曲线将被拉向先验。可以对FPR(未显示)执行相同的操作。从边际密度提取样本是逆变换采样的简单应用。
要解决形状约束要求,我们只需要对TPR和FPR进行独立排序。
非递减要求与对TPR和FPR的边际样本进行独立排序的要求相同-也就是说,ROC曲线的形状完全取决于将最小TPR值与最小FPR配对的要求值等等,这意味着形状受约束的随机样本的构造在这里微不足道。对于先前的不正确的,模拟提供了证据,表明以这种方式构造ROC曲线所生成的样本的平均AUC在大量样本的范围内会收敛至原始AUC。以下是2000年仿真的KDE。
与Bootstrap的比较
在与@AdamO进行的冗长的聊天讨论中(感谢AdamO!),他指出,有几种已建立的方法可以比较两个ROC曲线,或表征单个ROC曲线的可变性,其中包括引导程序。因此,作为一个实验,我尝试引导我的示例,该示例在保留集中的观察值,并将结果与贝叶斯方法进行比较。结果在下面进行了比较(此处的bootstrap实现是简单的bootstrap -随机采样,替换为原始样本的大小。bootstrap的光标阅读暴露了我在重新采样方法方面的知识空白,因此也许这不是适当的方法。)
该演示表明,引导程序的平均值偏向于原始样本的平均值以下,并且引导程序的KDE产生了明确定义的“驼峰”。这些驼峰的产生几乎不是神秘的-ROC曲线将对每个点的包含都敏感,而一个小样本(此处,n = 20)的影响是潜在的统计数据对每个点的包含都更加敏感点。(强调的是,这种模式并不是内核带宽的伪像,请注意地毯图。每个条带都是几个具有相同值的引导程序副本。引导程序具有2000个副本,但是不同值的数量显然要小得多。我们可以得出结论,驼峰是引导程序的固有特征。)相比之下,平均贝叶斯AUC估计值往往与原始估计值非常接近,
题
我修改过的问题是修改后的解决方案是否不正确。一个好的答案将证明(或证明)所得的ROC曲线样本存在偏差,或者同样证明或证明此方法的其他质量。