zoukankan      html  css  js  c++  java
  • ROC与AUC

    参考:ROC与AUC

    1. 总结:绘制ROC曲线时,横坐标是FPR(False Positive Rate),纵坐标是TPR(True Positive Rate),ROC曲线上的每一个点由一个分类器(例如逻辑回归分类器)取某一个概率阈值(例如取0.8作为阈值,则预测的概率大于0.8视为正样本,否则为负样本)作为区分正负样本时,进而得到的TPR,FPR的值。这样遍历所有阈值(0-1),得到每一个点,连接起来就是ROC曲线。

    其中y=x直线上的点,表示TPR=FPR,例如TPR=FPR=0.8,表示预测TPR=TP/(TP+FN)=0.8,FPR=FP/(FP+TN)=0.8,直觉上有点不理解为何会有这样的结果,但确实有,例如:

      真实
        Pos=70 Neg=30
    预测 Pos=80 56 24
    Neg=20 14 6

     TPR,FPR都是0.8

    而AUC就是ROC曲线之下,横坐标之上的部分(而不是ROC曲线与y=x曲线之间的部分)的面积就是AUC,因此AUC取值至少是0.5,不超过1.

    AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。
    1)AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
    2)0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
    3)AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。【即ROC曲线与y=x曲线重合,TPR=FPR,TPR不一定等于0.5,有可能等于0.8;这种情况TPR=FPR不一定是瞎猜,但就类似于知道总体分布(例如总体阳性率是0.8)后,属于有条件的瞎猜。】
    4)AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

    2. scikit-learn计算AUC的方法:

    https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html

  • 相关阅读:
    MySql的事务表和非事务表
    java邮件发送测试
    类加载
    浅谈java放射机制
    js创建对象的几种方法
    多线程
    快捷键
    vue 显示网页图标
    SQL 数据库,一张表打开设计,或者查询报错,a severe error occurred on the current command,the results,if any,should be discarded
    SQL server 主键自增ID 错乱
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/15655375.html
Copyright © 2011-2022 走看看