• 二分类模型评估之AUC ROC


    ROC的介绍可以参考wiki

    https://en.wikipedia.org/wiki/Receiver_operating_characteristic

    偷一张wiki上的图片:

    AUC ROC的意思为ROC 曲线下方的面积(Area under the Curve of ROC)

    ROC曲线:伪阳性率(FPR)定位为X轴,真阳性率(TPR)定义为Y轴。

    TPR: 在所有实际为阳性的样本中,被正确地判断为阳性的比率 TRP = TP / (TP + FN)

    <也称为正样本的召回率,或者覆盖率>

    FPR:在所有实际为阴性的样本中,被错误地判断为阳性的比率 FPR = FP / (FP + TN)

    <也称为负样本的召回率,或者取伪率>

    随带说明其他的指标:

    准确率Accuracy  = (TP + TN) / (TP + FP + FN + TN)

    精确率Precision = TP / (TP + FP ) 也称为命中率(正确预测到的正例数 / 预测正例总数)

    给定一个二元分类模型和它的阈值,就能从所有样本的真实值和预测值计算出一个坐标点。

    用一个例子来说明如何计算这些坐标点:

    y_true = [1, 1, 0, 0, 1]

    y_score = [0.5, 0.6, 0.55, 0.4, 0.7 ]

    现在我们选择一个阈值0.55,如果大于0.55则归为类别1,如果小于等于0.55则归为类别0.则y_pred = [0, 1, 0, 0, 1],TP=2   FN=1  TN=2  FP=0,可以计算得出TPR= 0.67,FPR=0.

    如果使用Python的话, 可以直接调用sklearn.metrics.roc_curve来计算坐标点和阈值。fpr, tpr, thresholds = sklearn.metrics.roc_curve(y_true, y_score)。

    此时ROC曲线如下:

    如果曲线下的面积AUC,也可以使用sklearn中的方法计算:auc = metrics.auc(fpr,tpr)

    至此,AUC的计算完成了,但是AUC这个模型评价指标应该如何理解呢?

    在知乎上搜到的(https://www.zhihu.com/question/39840928?from=profile_question_card):

    AUC就是从所有1样本中随机选取一个样本,从所有0样本中随机选取一个样本,然后根据你的分类器对两个随机样本进行预测,把1样本预测为1的概率为p1, 把0样本预测为1的概率为p0,p1>p0的概率就等于AUC。所有AUC反应的是分类器对样本的排序能力。根据这个解释,如果我们完全随机的对样本分类,那么AUC应该接近0.5。另外,AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常用AUC评价分类器性能的一个原因。

    以后慢慢了解了。

  • 相关阅读:
    NET微信公众号开发环境搭建(一)-了解微信由来
    JS:复制内容到剪贴板(无插件,兼容所有浏览器)
    js 压缩上传的图片方法(默认上传的是file文件)
    vue封装组件调用时绑定click事件
    vue cli3 区分开发环境,测试环境,正式环境(二)
    vue 动态修改网页标题 title
    vue移动端适配(px转vw)postcss-px-to-viewport配置
    veu创建项目,自定义配置
    vue cli3配置开发环境、测试环境、生产(线上)环境(一)
    vue封装axios
  • 原文地址:https://www.cnblogs.com/lyy-totoro/p/7170240.html
Copyright © 2020-2023  润新知