ROC曲线、PR曲线

在论文的结果分析中,ROC和PR曲线是经常用到的两个有力的展示图。

1.ROC曲线

ROC曲线(receiver operating characteristic)是一种对于灵敏度进行描述的功能图像。ROC曲线可以通过描述真阳性率(TPR)和假阳性率(FPR)来实现。由于是通过比较两个操作特征(TPR和FPR)作为标准,ROC曲线也叫做相关操作特征曲线。

ROC分析给选择最好的模型和在上下文或者类分布中抛弃一些较差的模型提供了工具。ROC曲线首先是由二战中的电子工程师和雷达工程师发明的,他们是用来检测战场中的敌军的,也就是信号检测理论。ROC分析现在已经在相关的领域得到了很好的发展,特别是在医学,无线电领域中,而且最近在机器学习和数据挖掘领域也得到了很好的发展。

一个分类模型(分类器)是一个将一个实例映射到一个特定类的过程。让我们来考虑一个两类预测问题(双分类器),其结果要么是真(p)要么是假(n)。在双分类器中有4类可能的输出。如果输出的预测是p而真实的结果也是p,那么这就叫做真阳性(TP);然而如果真实的结果是n,则这就叫做假阳性(FP)。相反的来说,一个真阴性发生在预测结果和实际结果都为n的时候,而假阴性是当预测输出是n而实际值是p的时候。其多种情况可由以下矩阵表示:

image

行是实际的类,列是分类器得到的类别。常用的术语如下:

真阳性(TP)——正确的肯定
真阴性(TN)——正确的否定
假阳性(FP)——错误的肯定,假报警,第一类错误
假阴性(FN)——错误的否定,未命中,第二类错误

真阳性率(TPR)
TPR = TP / P = TP / (TP+FN)

假阳性率(FPR)
FPR = FP / N = FP / (FP + TN)

准确度(ACC)
ACC = (TP + TN) / (P + N)
即:(猜对为阳性+猜对为阴性) / 总样本数

特征 (SPC) 或者真阴性率
SPC = TN / N = TN / (FP + TN) = 1 - FPR

阳性预测值(PPV)
PPV = TP / (TP + FP)

阴性预测值(NPV)
NPV = TN / (TN + FN)

假发现率 (FDR)
FDR = FP / (FP + TP)

Matthews相关系数 (MCC)
MCC = (TP*TN - FP*FN) / sqrt(PNP'N')

F1评分
F1 = 2TP/(P+P')

下面介绍ROC空间的概念:要生成一个ROC曲线,只需要真阳性率(TPR)和假阳性率(FPR)。ROC空间将FPR定义为x轴,TPR定义为y轴。而由于TPR即为灵敏度(sensitivity),FPR即为(1-特异度)(specificity),因此ROC曲线图有时候也叫做"灵敏度 vs. 1-特异度" 曲线图。每一个预测结果在ROC空间中以一个点代表

最好的预测方式是一个在左上角的点,在ROC空间坐标轴(0,1)点,这个代表着100%灵敏(没有假阴性)和100%特异(没有假阳性)。而(0,1)点被称为“完美分类器”。一个完全随机的预测会得到一条从左下到右上对角线(也叫无识别率线)上的一个点,这条线上的任一点对应的准确度(ACC)都是50%。

599px-ROC_space-2

离散分类器,如决策树,产生的是离散的数值或者一个二元标签。应用到实例中,这样的分类器最后只会在ROC空间产生单一的点。而一些其他的分类器,如朴素贝叶斯分类器,逻辑回归或者人工神经网络,产生的是实例属于某一类的可能性,对于这些方法,一个阈值就决定了ROC空间中点的位置。举例来说,如果可能值低于或者等于0.8这个阈值就将其认为是阳性的类,而其他的值被认为是阴性类。这样就可以通过画每一个阈值的ROC点来生成一个生成一条曲线。MedCalc是较好的ROC曲线分析软件。

2.PR曲线

PR曲线指的是Precision Recall曲线,中文为查准率-查全率曲线。PR曲线在分类、检索等领域有着广泛的使用,来表现分类/检索的性能。

如上矩阵图所示:

查准率(Precision Ratio)= TP/P
查全率(Recall Ratio)= TP/ P'

注:查准率又名精度,查全率又名召回率。这些表达式在ROC中有不同的名称而已。

如果是分类器的话,通过调整分类阈值,可以得到不同的P-R值,从而可以得到一条曲线(纵坐标为P,横坐标为R)。通常随着分类阈值从大到小变化(大于阈值认为P),查准率减小,查全率增加。比较两个分类器好坏时,显然是查得又准又全的比较好,也就是的PR曲线越往坐标(1,1)的位置靠近越好。

posted @ 2013-09-19 23:05  侯凯  阅读(20983)  评论(0编辑  收藏  举报