目录

概述

混淆矩阵(Confusion matrix)

ROC曲线

AUC(Area under the ROC curve)

AUC能拿来干什么

总结

参考资料:


概述

二分类问题在机器学习中是一个很常见的问题,经常会用到。ROC (Receiver Operating Characteristic) 曲线和 AUC (Area Under the Curve)(Area Under theCurve) 值常被用来评价一个二值分类器 (binary classifier) 的优劣。

对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score等,以及这里要讨论的ROC和AUC。

混淆矩阵(Confusion matrix)

混淆矩阵是理解大多数评价指标的基础,毫无疑问也是理解AUC的基础。丰富的资料介绍着混淆矩阵的概念,这里用一个经典图来解释混淆矩阵是什么。

混淆矩阵

显然,混淆矩阵包含四部分的信息:

  • True negative[TN] :称为真阴率,表示实际是负样本预测成负样本的样本数。
  • Flase positive[FP] :称为假阳率,表示实际是负样本预测成正样本的样本数。
  • False negative[FN]:称为假阴率,表示实际是正样本预测成负样本的样本数。
  • True positive[TP] :称为真阳率,表示实际是正样本预测成正样本的样本数。

对照着混淆矩阵,很容易就能把关系、概念理清楚,但是久而久之,也很容易忘记概念。不妨我们按照位置前后分为两部分记忆,前面的部分是True/False表示真假,即代表着预测的正确性,后面的部分是positive/negative表示正负样本,即代表着预测的结果,所以,混淆矩阵即可表示为正确性-预测结果的集合。现在我们再来看上述四个部分的概念(均代表样本数,下述省略):

  • TN,预测是负样本,预测对了
  • FP,预测是正样本,预测错了
  • FN,预测是负样本,预测错了
  • TP,预测是正样本,预测对了

几乎我所知道的所有评价指标,都是建立在混淆矩阵基础上的,包括准确率、精准率、召回率、F1-score,当然也包括AUC。

ROC曲线

事实上,要一下子弄清楚什么是AUC并不是那么容易,首先我们要从ROC曲线说起。对于某个二分类分类器来说,输出结果标签(0还是1)往往取决于输出的概率以及预定的概率阈值,比如常见的阈值就是0.5,大于0.5的认为是正样本,小于0.5的认为是负样本。如果增大这个阈值,预测错误(针对正样本而言,即指预测是正样本但是预测错误,下同)的概率就会降低但是随之而来的就是预测正确的概率也降低;如果减小这个阈值,那么预测正确的概率会升高但是同时预测错误的概率也会升高。实际上,这种阈值的选取也一定程度上反映了分类器的分类能力。我们当然希望无论选取多大的阈值,分类都能尽可能地正确,也就是希望该分类器的分类能力越强越好,一定程度上可以理解成一种鲁棒能力吧。
为了形象地衡量这种分类能力,ROC曲线横空出世!如下图所示,即为一条ROC曲线(该曲线的原始数据第三部分会介绍)。现在关心的是:
- 横轴:False Positive Rate(假阳率,FPR)
- 纵轴:True Positive Rate(真阳率,TPR)

ROC曲线图

假阳率,简单通俗来理解就是预测为正样本但是预测错了的可能性,显然,我们不希望该指标太高。

真阳率,则是代表预测为正样本但是预测对了的可能性,当然,我们希望真阳率越高越好。

显然,ROC曲线的横纵坐标都在[0,1]之间,自然ROC曲线的面积不大于1。现在我们来分析几个特殊情况,从而更好地掌握ROC曲线的性质

  • (0,0):假阳率和真阳率都为0,即分类器全部预测成负样本
  • (0,1):假阳率为0,真阳率为1,全部完美预测正确,happy
  • (1,0):假阳率为1,真阳率为0,全部完美预测错误,悲剧
  • (1,1):假阳率和真阳率都为1,即分类器全部预测成正样本
  • TPR=FPR,斜对角线,预测为正样本的结果一半是对的,一半是错的,代表随机分类器的预测效果

于是,我们可以得到基本的结论:ROC曲线在斜对角线以下,则表示该分类器效果差于随机分类器,反之,效果好于随机分类器,当然,我们希望ROC曲线尽量除于斜对角线以上,也就是向左上角(0,1)凸

AUC(Area under the ROC curve)

ROC曲线一定程度上可以反映分类器的分类效果,但是不够直观,我们希望有这么一个指标,如果这个指标越大越好,越小越差,于是,就有了AUC。AUC实际上就是ROC曲线下的面积。AUC直观地反映了ROC曲线表达的分类能力

  • AUC = 1,代表完美分类器
  • 0.5 < AUC < 1,优于随机分类器
  • 0 < AUC < 0.5,差于随机分类器

AUC能拿来干什么

AUC最大的应用应该就是点击率预估(CTR)的离线评估。CTR的离线评估在公司的技术流程中占有很重要的地位,一般来说,ABTest和转全观察的资源成本比较大,所以,一个合适的离线评价可以节省很多时间、人力、资源成本。那么,为什么AUC可以用来评价CTR呢?我们首先要清楚两个事情:

1. CTR是把分类器输出的概率当做是点击率的预估值,如业界常用的LR模型,利用sigmoid函数将特征输入与概率输出联系起来,这个输出的概率就是点击率的预估值。内容的召回往往是根据CTR的排序而决定的。
       2. AUC量化了ROC曲线表达的分类能力。这种分类能力是与概率、阈值紧密相关的,分类能力越好(AUC越大),那么输出概率越合理,排序的结果越合理。

我们不仅希望分类器给出是否点击的分类信息,更需要分类器给出准确的概率值,作为排序的依据。所以,这里的AUC就直观地反映了CTR的准确性(也就是CTR的排序能力)

总结

  1. ROC曲线反映了分类器的分类能力,结合考虑了分类器输出概率的准确性
  2. AUC量化了ROC曲线的分类能力,越大分类效果越好,输出概率越合理
  3. AUC常用作CTR的离线评价,AUC越大,CTR的排序能力越强

参考资料:

[1]From 机器学习和统计里面的auc怎么理解?
[2]From 精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
[3]From 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
[4]From ROC曲线、AUC值

分类器性能度量指标之ROC曲线、AUC值相关推荐

  1. 分类性能度量指标:ROC曲线、AUC值、正确率、召回率、敏感度、特异度

    在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分的样例比例.实际上,这样的度量错误掩盖了样例如何被分错的事实.在机器学习中,有一个普遍适用的称为混淆矩阵 ...

  2. 机器学习中的度量指标:ROC曲线,AUC值,K-S曲线

    机器学习中的度量指标:ROC曲线,AUC值,K-S曲线 首先,回顾一下二分类问题的一些定义: 预测 1 0 实 1 TP FN ​际 0 FP TN 上表中,四个项分别为:TP真阳性:FN假阴性:FP ...

  3. 机器学习知识点(三十六)分类器性能度量指标f1-score

    在用python机器学习库scikit-learn训练模型时,常用f1-score来度量模型性能,下面回顾和学习下这个指标. 内容概要¶ 模型评估的目的及一般评估流程 分类准确率的用处及其限制 混淆矩 ...

  4. ROC曲线 AUC值

    全面了解ROC曲线 一. 初识ROC曲线 1. ROC的前世今生: ROC的全称是"受试者工作特征"(Receiver Operating Characteristic)曲线,  ...

  5. 分类性能度量指标:准确性(AC)、敏感性(SE)、特异性(SP)、F1评分、ROC曲线、PR(Precision-Recall)曲线、AUC曲线,混淆曲线

    一:比较容易理解的比喻 以糖尿病人的筛查为例.第一个钟形代表正常人,第二个钟形代表糖尿病人.理想中,如果正常人和糖尿病人的血糖范围完全没有重合就好了.这样我就把标准定在中间那个最低点.低于此点的,就是 ...

  6. 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

    北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分 ...

  7. 分类器的ROC曲线及相关指标(ROC、AUC、ACC)详解

    关于ROC曲线有几篇老博客.有一篇是一位博士写的,不过不知道为什么,那篇文章老是有迷之错误,从13年开始,一直订正到17年,依旧存在错误,如举例有问题.概念混淆(因为其文章包含了太多的概念,导致文法上 ...

  8. 机器学习之性能度量指标

    机器学习的模型性能度量指标 在机器学习中,衡量,评估和选择一个模型好坏是通过一些常见指标实现的,称之为性能指标(Metrics). 对于一个二分类问题,我们首先给出如下基本指标基于这些指标可以推导出其 ...

  9. 【AI面试题】分类问题常用的性能度量指标(评价指标)

    分类问题常用的性能度量指标有精确率.召回率.F1.TPR.FPR. 分类问题度量指标的基础是混淆矩阵: 上表中: TP表示正样本被预测为正样本(真正例,True Positive) FN表示正样本被预 ...

最新文章

  1. 201621123069 《Java程序设计》第十一周学习总结
  2. 人工智能和中国学霸比赛做卷子居然输了?
  3. c 批量导入mysql数据库_C#.NET中如何批量插入大量数据到数据库中
  4. Tomcat 中文乱码 设置UTF-8编码 问题解决办法
  5. Idea中启动tomcat服务,提示缺少一个tcnative-1.dll文件
  6. 巧用EditPlus包含VS2010网站项目资源
  7. server.xml拒绝访问 无法修改
  8. java上传永久图文素材_Java-微信开发上传永久素材(支持所有文件类型)
  9. SPI接口比IIC速度快的理解
  10. [转载] JVM(一):JVM体系结构详解
  11. laragon环境安装新的php版本后弹出php startup
  12. vs code打开新的文件后旧的文件被顶掉
  13. java的代理Proxy.newProxyInstance
  14. lucene5 排序
  15. java取html中的table_htmlunit 操作table表格(一)
  16. [转] 暴风影音被挂马 已有28000网民遭侵袭
  17. 头歌-离散数学(python)-关系运算
  18. 微信视频号推出“创作者流量包”
  19. (组合游戏)SG函数与SG定理详解
  20. JavaScript、Lua语言基础、电脑脚本、手机免ROOT免越狱脚本开发免费视频教程

热门文章

  1. DRN - 扩张残留网络(图像分类和语义分割)
  2. 【转载】JAVA知识点集锦(下)
  3. Java并发编程面试题(精心整理100家互联网企业,最全面试题祝你面试上岸)
  4. java期末考试试卷及答案文库_Java期末考试试卷答案A
  5. python入门之综合应用--名片管理系统
  6. Intel争夺台积电5nm工艺,AMD疑似被迫出走三星
  7. SpringBoot入门建站全系列(九)文件上传功能与下载方式
  8. hao123网址之家--智能计算器 html源代码
  9. java代码批量下载_Java代码实战:线程池实现批量下载文件
  10. 【 PG 入门系列 】PostgreSQL的入门简介(一)