ROC and AUC分类器原理
前言
ROC和AUC,作为一个重要的分类器的评价指标,起初是为了增进军事雷达的敌我侦测能力而发展的。举例而言:雷达接收的无线电波可能只是噪声,也可能是噪声加上真正的电磁波,如果把噪声判为敌机,或把敌机 噪声加上真正的电磁波,因此选择一个合理的指标做为判断标准,显然是十分重要的。
分类模型(又称分类器)是将一个实例映射到一个特定类的过程。ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如:(阳性/阴性)(有病/没病)(垃圾邮件/非垃圾邮件)(敌军/非敌军)。
当讯号侦测(或变数测量)的结果是一个连续值时,类与类的边界必须用一个阈值(threshold)来界定。举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:
真阳性(TP):诊断为有,实际上也有高血压。
伪阳性(FP):诊断为有,实际却没有高血压。
真阴性(TN):诊断为没有,实际上也没有高血压。
伪阴性(FN):诊断为没有,实际却有高血压。
然后我们根据预测结果可以得到混淆矩阵(Confusion Matrix)
00阈值选择
假设我们已经有了一条拟合好的回归曲线,x轴表示小鼠的体中,y轴表示小鼠肥胖的概率
01现在需要使用肥胖和不肥胖两种形式表示预测结果,我们可以将肥胖与否的阈值选择为0.5
02如果有另外8个样本来(红色点表示非肥胖样本,蓝色点表示肥胖样本)验证模型
03那么我们可以用Confusion Matrix来表示验证结果
04如果将阈值降为0.1
05Confusion Matrix变为
06可以看出降低阈值后导致True Positive和False Positive增加,True Negative和False Negative降低
如果将阈值提高至0.9,预测结果又有变化
07根据目前的三个选择,似乎较高的阈值(0.9)对于预测肥胖与否的效果会好些。那么是否还有更好的选择呢?
ROC
对某个分类器而言,将预测每一个样本为True Positive的概率输出,并且从小到大排序(或从大到小),依次将概率值作为阈值计算Sensitivity
和1-Specificity
的值从而得到二维平面上的一个点。
调整这个分类器分类的时候使用的阈值,然后将所有点连接在一起,就可以得到ROC(Receiver Operating Characteristic)曲线。
08ROC曲线的x轴为预测结果为假阳性的比例,y轴为预测结果为真阳性的比例
灵敏性
特异性
ROC曲线会经过(0,0)和(1,1)两点
在之前小鼠肥胖分类的案例中,如果我们将分类阈值设为0(此时所有样本被判定为肥胖)
09那么对应的Confusion Matrix为
10所以其Sensitivity
和1-Specificity
的值均为1
然后我们选择最轻样本对应的肥胖概率作为阈值(此时其余样本被分类器判定为肥胖,而该样本被判定为非肥胖)
13其Sensitivity
和1-Specificity
的值均为0.75和1
(0.75,1)这个点朝左边偏移,表示假阳性的预测概率降低,说明这个阈值比刚才那个0好
接下来我们分别选择倒数第二轻样本对应的肥胖概率作为阈值,倒数第三轻样本对应的肥胖概率,倒数第四……最后阈值为1时,Sensitivity
和1-Specificity
的值均变为0。
将所有的点连接在一起,就获得了ROC曲线。
14在ROC曲线上,最靠近坐标图左上方的点为敏感性和特异性均较高的临界值,如在这个案例中,如果对假阳性要求比较高的话,可以选择左边箭头点对应的阈值;如果愿意忍受一定的假阳性,希望提高真阳性的话,可以选择右侧箭头点对应的阈值。
AUC
AUC(Area Under Curve),即ROC曲线下的面积。
ROC可以为分类器选择一个较好的分类阈值,而AUC可以表不同分类器的效能。AUC数值(面积)可以直观的评价分类器的好坏,值越大越好,如下图的对于两个分类器,我们通常会选择红色曲线对应的分类器。
15Precision
上面所讲ROC的横轴为假阳性比例,但有时也可以用精确度(Precision)来表示。
精确性
如果非肥胖样本数目远超肥胖样本的话,那么精确性会比假阳性更适用一些,因为精确性的计算公式中不包含True Negatives,不会被这种不均衡性所影响。
16Reference
https://www.youtube.com/watch?v=AJN2yl004-4&feature=youtu.be
http://www.labmed.cn/uploadfile/2015/0808/20150808063958641.pdf
https://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF