[论文笔记] An introduction to ROC analysis

引入

ROC(Receiver operating characteristics)图最早被用于信号检测理论和诊断测验(Diagnostic Testing),来平衡命中率和判错率(false alarm rates);后2000年Swets等人在《科学美国人》杂志上发表的文章引起了更广泛对ROC曲线的关注。一方面,简单使用分类的准确率经常不能很好的衡量效果,另一方面,在样本不平衡和类别代价敏感的领域,ROC更有用。

分类性能

真阳率(true positive rate)也被称作命中率和召回率,是预测为正实际也为正的样本数/全部正样本数

假阳率(false positive rate)也被称作判错率,是预测为正实际为正/全部负样本数

以及混淆矩阵衍生出来的其他指标,就不展开了。

ROC图和ROC曲线

对于哪些只能预测样本的分类,但不能给出某个分类对应"概率"值的分类器,其对应为ROC图上的一点;但是对于哪些可以预测分类概率的分类器其对应为ROC曲线;下面具体描述。
这种排名或得分分类器可以与一个阈值一起使用来产生一个离散的(二进制)分类器:如果分类器输出超过这个阈值,则分类器产生一个Y,否则产生一个N。每个阈值在ROC空间中产生一个不同的点。从概念上讲,我们可以想象将阈值从负无穷变化到正无穷,并通过ROC空间来跟踪曲线。在计算上,这是一种生成ROC曲线的低效方法,下面介绍一种更有效、更仔细的方法。

在图3的表格中,实例按照它们的得分排序,ROC图中的每一个点都用产生它的分数阈值进行标记。阈值为正无穷产生点(0,0)。当我们将阈值降低到0.9时,第一个阳性实例被分类为阳性,产生(0,0.1)。随着阈值进一步降低,曲线向上并向右攀升,最终在(1,1)处结束,阈值为0.1。请注意,降低此阈值对应于从图中的“保守”区域移动到“自由”区域。

给定一个测试集,我们通常想要从它有效地生成一个ROC曲线。我们可以利用阈值分类的单调性:任何相对于给定阈值被分类为正的实例,对于所有较低的阈值也将被分类为正。因此,我们可以简单地对按f分数递减的测试实例进行排序,并向下移动列表,一次处理一个实例,并在此过程中更新TP和FP。通过这种方式,可以从线性扫描中创建ROC图。

算法如算法1所示。TP和FP都是从0开始的。对于每个正例,我们增加TP,对于每个负例,我们增加FP。我们维护一个ROC点的堆栈R,在处理每个实例之后,将一个新点推入R。最后的输出是堆栈R,它将包含ROC曲线上的点。设n为测试集中的点数。该算法需要O(nlogn)排序,然后O(n)向下扫描列表,导致O(nlogn)总复杂度。具体生成ROC曲线见原论文的算法1,这里也不展开了

ROC曲线有一个吸引人的特性:它能反映阶级分布的变化。如果在一个测试集中,正、负的实例比例发生变化,ROC曲线不会发生变化。要了解为什么会这样,请考虑图1中的混淆矩阵。请注意,类分布—即正、负状态的比例—是左(+)列与右(-)列之间的关系。任何使用来自两个列的值的性能度量都对类倾斜非常敏感。准确率、精度、升力和F分数等指标使用来自混淆矩阵的两列的值。即使基本的分类器性能没有改变,随着类的分布改变,这些措施也会改变。ROC图基于tp率和fp率,其中每个维度都是严格的柱状比,不依赖于类的分布。

AUC

ROC曲线是对分类器性能的二维描述。为了比较分类器,我们可能需要将ROC性能降低到表示期望性能的单个标量值。一种常用的方法是计算ROC曲线下面积,简称AUC (Bradley, 1997;汉利和麦克尼尔,1982)。由于AUC是单位正方形面积的一部分,所以它的值总是在0到1.0之间。但是,由于随机猜测会产生(0,0)和(1,1)之间的对角线,其面积为0.5,所以任何实际的分类器的AUC都不应该小于0.5。

AUC具有一个重要的统计特性:分类器的AUC等价于分类器对随机选择的正实例的排序高于随机选择的负实例的排序的概率。这相当于等级的Wilcoxon检验(Hanley and McNeil, 1982)。AUC还与基尼系数密切相关(Breiman et al., 1984),基尼系数是对角线与ROC曲线之间面积的两倍。Hand and Till(2001)指出基尼系数+1 = 2*AUC。

利用算法1的一个小修正可以很容易地计算AUC,如算法2所示。该算法不采集ROC点,而是将梯形的连续面积添加到a中,利用梯形而不是矩形来平均点与点之间的效果,如图6所示。最后,算法用A除以可能的总面积将值缩放到单位平方。

这里AUC的计算还是不展开,具体参见原论文的算法2

平均ROC曲线

虽然ROC曲线可以用来评价分类器,但是在使用它们来得出关于分类器优越性的结论时应该小心。一些研究者认为,ROC图可以简单地通过在ROC空间中作图来选择最优分类器,并观察哪些分类器占主导地位。这是误导;这类似于从单个测试集中获取一组精度数据的最大值。如果没有方差度量,我们就无法比较这些分类器。

原文地址:https://www.cnblogs.com/arachis/p/ROC_AUC.html