Remove ads
来自维基百科,自由的百科全书
在信号检测理论中,接收者操作特征曲线,或者叫ROC曲线(英语:Receiver operating characteristic curve),是一种坐标图式的分析工具,用于选择最佳的信号侦测模型、舍弃次佳的模型或者在同一模型中设置最佳阈值。
在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议。
ROC曲线首先是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具(飞机、船舰),也就是信号检测理论。之后很快就被引入了心理学来进行信号的知觉检测。数十年来,ROC分析被用于医学、无线电、生物学、犯罪心理学领域中,而且最近在机器学习(machine learning)和数据挖掘(data mining)领域也得到了很好的发展。
|
Source: Fawcett (2006). |
分类模型(又称分类器,或诊断)是将一个实例映射到一个特定类的过程。ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如:(阳性/阴性)(有病/没病)(垃圾邮件/非垃圾邮件)(敌军/非敌军)。
当信号侦测(或变量测量)的结果是一个连续值时,类与类的边界必须用一个阈值(英语:threshold)来界定。举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:
这四种结局可以画成2 × 2的混淆矩阵:
真实值 | 总 数 | |||
---|---|---|---|---|
p | n | |||
预 测 输 出 |
p' | 真阳性 (TP) |
伪阳性 (FP) |
P' |
n' | 伪阴性 (FN) |
真阴性 (TN) |
N' | |
总数 | P | N |
ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。
给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 座标点。 在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。
完美的预测是一个在左上角的点,在ROC空间座标 (0,1)点,X=0 代表着没有伪阳性,Y=1 代表着没有伪阴性(所有的阳性都是真阳性);也就是说,不管分类器输出结果是阳性或阴性,都是100%正确。一个随机的预测会得到位于从 (0, 0) 到 (1, 1) 对角线(也叫无识别率线)上的一个点;如果分类器采用“抛硬币”的设定,那么该预测会在点(0.5, 0.5)上。
让我们来看在实际有100个阳性和100个阴性的案例时,四种预测方法(可能是四种分类器,或是同一分类器的四种阈值设置)的结果差异:
A | B | C | C' | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
| ||||||||||||||||||||||||||||||||||||
TPR = 0.63 | TPR = 0.77 | TPR = 0.24 | TPR = 0.76 | ||||||||||||||||||||||||||||||||||||
FPR = 0.28 | FPR = 0.77 | FPR = 0.88 | FPR = 0.12 | ||||||||||||||||||||||||||||||||||||
ACC = 0.675 | ACC = 0.500 | ACC = 0.180 | ACC = 0.820 |
将这4种结果画在ROC空间里:
上述ROC空间里的单点,是给定分类模型且给定阈值后得出的。但同一个二元分类模型的阈值可能设置为高或低,每种阈值的设置会得出不同的FPR和TPR。
例如右图,人体的血液蛋白浓度是呈正态分布的连续变量,病人的分布是红色,平均值为A g/dL,健康人的分布是蓝色,平均值是C g/dL。健康检查会测量血液样本中的某种蛋白质浓度,达到某个值(阈值,threshold)以上诊断为有疾病征兆。研究者可以调整阈值的高低(将左上图的B垂直线往左或右移动),便会得出不同的伪阳性率与真阳性率,总之即得出不同的预测准确率。
1. 由于每个不同的分类器(诊断工具、侦测工具)有各自的测量标准和测量值的单位(标示为:“健康人-病人分布图”的横轴),所以不同分类器的“健康人-病人分布图”都长得不一样。
2. 比较不同分类器时,ROC曲线的实际形状,便视两个实际分布的重叠范围而定,没有规律可循。
3. 但在同一个分类器之内,阈值的不同设置对ROC曲线的影响,仍有一些规律可循:
在比较不同的分类模型时,可以将每个模型的ROC曲线都画出来,比较曲线下面积做为模型优劣的指针。
ROC曲线下方的面积(英语:Area under the Curve of ROC (AUC ROC)),其意义是:
从AUC判断分类器(预测模型)优劣的标准:
AUC的计算有两种方式,都是以逼近法求近似值。
梯形法(英语:trapezoid method):简单地将每个相邻的点以直线连接,计算连线下方的总面积。因为每一线段下方都是一个梯形,所以叫梯形法。
AUC of ROC是机器学习的社群最常使用来比较不同模型优劣的方法[2] 。然而近来这个做法开始受到质疑,因为有些机器学习的研究指出,AUC的杂讯太多,并且很常求不出可信又有效的AUC值(此时便不能保证AUC传达本节开头所述之意义),使得AUC在模型比较时产生的问题比解释的问题更多[3][4][5] 。
所有常用于统计分析的软件(例:SPSS、SAS、SYSTAT、S-Plus、ROCKIT、RscorePlus)都有依据不同阈值自动计算真阳性和伪阳性比率、并依此绘制ROC曲线的功能。
离散分类器(英语:discrete,或称“间断分类器”),如决策树,产生的是离散的数值或者一个二元标签。应用到实例中,这样的分类器最后只会在ROC空间产生单一的点。而一些其他的分类器,如朴素贝叶斯分类器,逻辑斯谛回归或者人工神经网络,产生的是实例属于某一类的可能性,对于这些方法,一个阈值就决定了ROC空间中点的位置。举例来说,如果可能值低于或者等于0.8这个阈值就将其认为是阳性的类,而其他的值被认为是阴性类。这样就可以通过画每一个阈值的ROC点来生成一个生成一条曲线。MedCalc是较好的ROC曲线分析软件。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.