美文网首页
ROC和AUC介绍以及如何计算AUC

ROC和AUC介绍以及如何计算AUC

作者: Edison_Tu | 来源:发表于2019-02-12 10:41 被阅读0次

    1. 首先介绍下一些参数指标
    混淆矩阵
    混淆矩阵简图
    • 精确率(Precision):
      Precision
    • 真阳性率(True Positive Rate,TPR),灵敏度(Sensitivity),召回率(Recall):
      TPR、Recall
    • 真阴性率(True Negative Rate,TNR),特异度(Specificity):
      TNR
    • 假阴性率(False Negatice Rate,FNR),漏诊率( = 1 - 灵敏度):
      FNR
    • 假阳性率(False Positice Rate,FPR),误诊率( = 1 - 特异度):
      FPR
    2. ROC曲线

    ROC曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。如图所示:

    ROC曲线
    • 横坐标:1-Specificity,假阳性率(False positive rate, FPR),预测为正但实际为负的样本占所有负例样本的比例,FPR越大,预测正类中实际负类越多。
    • 纵坐标:Sensitivity,真阳性率(True positive rate, TPR),预测为正且实际为正的样本占所有正例样本的比例,TPR越大,预测正类中实际正类越多。
    • 理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。
    3. 如何画ROC曲线

    下图是一个示例,图中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。


    image.png

    接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:


    image.png
    当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。
    4. 为何ROC曲线

    因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

    相关文章

      网友评论

          本文标题:ROC和AUC介绍以及如何计算AUC

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