美文网首页StatQuest
ROC and AUC分类器原理

ROC and AUC分类器原理

作者: 安哥生个信 | 来源:发表于2019-02-20 08:35 被阅读7次

    前言

    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

    05

    Confusion Matrix变为

    06

    可以看出降低阈值后导致True Positive和False Positive增加,True Negative和False Negative降低

    如果将阈值提高至0.9,预测结果又有变化

    07

    根据目前的三个选择,似乎较高的阈值(0.9)对于预测肥胖与否的效果会好些。那么是否还有更好的选择呢?

    ROC

    对某个分类器而言,将预测每一个样本为True Positive的概率输出,并且从小到大排序(或从大到小),依次将概率值作为阈值计算Sensitivity1-Specificity的值从而得到二维平面上的一个点。

    调整这个分类器分类的时候使用的阈值,然后将所有点连接在一起,就可以得到ROC(Receiver Operating Characteristic)曲线。

    08

    ROC曲线的x轴为预测结果为假阳性的比例,y轴为预测结果为真阳性的比例

    灵敏性Sensitivity=(True Positives)/(True Positives+False Nagetives)

    特异性Specificity=(True Negatives)/(True Negatives+False Positives)

    ROC曲线会经过(0,0)和(1,1)两点

    在之前小鼠肥胖分类的案例中,如果我们将分类阈值设为0(此时所有样本被判定为肥胖)

    09

    那么对应的Confusion Matrix为

    10

    所以其Sensitivity1-Specificity的值均为1

    11

    然后我们选择最轻样本对应的肥胖概率作为阈值(此时其余样本被分类器判定为肥胖,而该样本被判定为非肥胖)

    13

    Sensitivity1-Specificity的值均为0.75和1

    13

    (0.75,1)这个点朝左边偏移,表示假阳性的预测概率降低,说明这个阈值比刚才那个0好

    接下来我们分别选择倒数第二轻样本对应的肥胖概率作为阈值,倒数第三轻样本对应的肥胖概率,倒数第四……最后阈值为1时,Sensitivity1-Specificity的值均变为0。

    将所有的点连接在一起,就获得了ROC曲线。

    14

    在ROC曲线上,最靠近坐标图左上方的点为敏感性和特异性均较高的临界值,如在这个案例中,如果对假阳性要求比较高的话,可以选择左边箭头点对应的阈值;如果愿意忍受一定的假阳性,希望提高真阳性的话,可以选择右侧箭头点对应的阈值。

    AUC

    AUC(Area Under Curve),即ROC曲线下的面积。

    ROC可以为分类器选择一个较好的分类阈值,而AUC可以表不同分类器的效能。AUC数值(面积)可以直观的评价分类器的好坏,值越大越好,如下图的对于两个分类器,我们通常会选择红色曲线对应的分类器。

    15

    Precision

    上面所讲ROC的横轴为假阳性比例,但有时也可以用精确度(Precision)来表示。

    精确性Precision=(True Positives)/(True Positives+False Positives)

    如果非肥胖样本数目远超肥胖样本的话,那么精确性会比假阳性更适用一些,因为精确性的计算公式中不包含True Negatives,不会被这种不均衡性所影响。

    16

    Reference

    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

    https://www.jianshu.com/p/091e5dc7f1f3

    https://blog.csdn.net/u013385925/article/details/80385873

    相关文章

      网友评论

        本文标题:ROC and AUC分类器原理

        本文链接:https://www.haomeiwen.com/subject/dqkcyqtx.html