ROC曲线和AUC面积理解

标签: ROC AUC 机器学习 模型性能度量 ROC曲线AUC
96人阅读 评论(0) 收藏 举报
分类:


关注微信公众号【Microstrong】,我现在研究方向是机器学习、深度学习,分享我在学习过程中的读书笔记!一起来学习,一起来交流,一起来进步吧!

本文同步更新在我的微信公众号中,公众号文章地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247484146&idx=1&sn=963765a3ede231292bcae8b6e21c5325&chksm=ec653377db12ba615279b2a9702f9c129dba27adbbe8936fcf2a211b3592f159738345dc8add#rd

目录:

(1)    ROC曲线的由来

(2)    什么是ROC曲线

(3)    ROC曲线的意义

(4)    AUC面积的由来

(5)    什么是AUC面积

(6)    AUC面积的意义

(7)    讨论:在多分类问题下能不能使用ROC曲线

 

一、 ROC曲线的由来

  很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值则分为正类,否则为反类。例如,神经网络在一般情形下是对每个测试样本预测出一个[0.0,1.0]之间的实值,然后将这个值与阈值0.5进行比较,大于0.5则判为正例,否则为反例。这个阈值设置的好坏,直接决定了学习器的泛化能力。

  在不同的应用任务中,我们可根据任务需求来采用不同的阈值。例如,若我们更重视“查准率”,则可以把阈值设置的大一些,让分类器的预测结果更有把握;若我们更重视“查全率”,则可以把阈值设置的小一些,让分类器预测出更多的正例。因此,阈值设置的好坏,体现了综合考虑学习器在不同任务下的泛化性能的好坏。为了形象的描述这一变化,在此引入ROC曲线,ROC曲线则是从阈值选取角度出发来研究学习器泛化性能的有力工具。

如果你还对“查准率”和“查全率”不了解,看我之前的文章【错误率、精度、查准率、查全率和F1度量】详细介绍

二、 什么是ROC曲线

  ROC全称是“受试者工作特征”(Receiver OperatingCharacteristic)曲线。我们根据学习器的预测结果,把阈值从0变到最大,即刚开始是把每个样本作为正例进行预测,随着阈值的增大,学习器预测正样例数越来越少,直到最后没有一个样本是正样例。在这一过程中,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“ROC曲线”。

  ROC曲线的纵轴是“真正例率”(True Positive Rate, 简称TPR),横轴是“假正例率”(False Positive Rate,简称FPR),基于上篇文章《错误率、精度、查准率、查全率和F1度量》的表1中符号,两者分别定义为:


  显示ROC曲线的图称为“ROC图”。图1给出了一个示意图,显然,对角线对应于“随机猜测”模型,而点(0,1)则对应于将所有正例预测为真正例、所有反例预测为真反例的“理想模型”。

图1:ROC曲线与AUC面积   

  现实任务中通常是利用有限个测试样例来绘制ROC图,此时仅能获得有限个(真正例率,假正例率)坐标对,无法产生图1中的光滑ROC曲线,只能绘制出图2所示的近似ROC曲线。绘制过程很简单:给定个正例和个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设置为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为,当前若为真正例,则对应标记点的坐标为;当前若为假正例,则对应标记点的坐标为,然后用线段连接相邻点即得。

三、 ROC曲线的意义

(1)主要作用

1. ROC曲线能很容易的查出任意阈值对学习器的泛化性能影响。

2.有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的查全率就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。

3.可以对不同的学习器比较性能。将各个学习器的ROC曲线绘制到同一坐标中,直观地鉴别优劣,靠近左上角的ROC曲所代表的学习器准确性最高。

(2)优点

1. 该方法简单、直观、通过图示可观察分析方法的准确性,并可用肉眼作出判断。ROC曲线将真正例率和假正例率以图示方法结合在一起,可准确反映某种学习器真正例率和假正例率的关系,是检测准确性的综合代表。

2. 在生物信息学上的优点:ROC曲线不固定阈值,允许中间状态的存在,利于使用者结合专业知识,权衡漏诊与误诊的影响,选择一个更加的阈值作为诊断参考值。

四、 AUC面积的由来

  如果两条ROC曲线没有相交,我们可以根据哪条曲线最靠近左上角哪条曲线代表的学习器性能就最好。但是,实际任务中,情况很复杂,如果两条ROC曲线发生了交叉,则很难一般性地断言谁优谁劣。在很多实际应用中,我们往往希望把学习器性能分出个高低来。在此引入AUC面积。

  在进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较,则比较合理的判断依据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve),如图1图2所示。

五、 什么是AUC面积

  AUC就是ROC曲线下的面积,衡量学习器优劣的一种性能指标。从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得。假定ROC曲线是由坐标为的点按序连接而形成,参见图2,则AUC可估算为公式3。

 

六、 AUC面积的意义

  AUC是衡量二分类模型优劣的一种评价指标,表示预测的正例排在负例前面的概率。

  看到这里,是不是很疑惑,根据AUC定义和计算方法,怎么和预测的正例排在负例前面的概率扯上联系呢?如果从定义和计算方法来理解AUC的含义,比较困难,实际上AUC和Mann-WhitneyU test(曼-慧特尼U检验)有密切的联系。从Mann-Whitney U statistic的角度来解释,AUC就是从所有正样本中随机选择一个样本,从所有负样本中随机选择一个样本,然后根据你的学习器对两个随机样本进行预测,把正样本预测为正例的概率,把负样本预测为正例的概率>的概率就等于AUC。所以AUC反映的是分类器对样本的排序能力。根据这个解释,如果我们完全随机的对样本分类,那么AUC应该接近0.5。

  另外值得注意的是,AUC的计算方法同时考虑了学习器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器做出合理的评价。AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常用AUC评价学习器性能的一个原因。例如在癌症预测的场景中,假设没有患癌症的样本为正例,患癌症样本为负例,负例占比很少(大概0.1%),如果使用准确率评估,把所有的样本预测为正例便可以获得99.9%的准确率。但是如果使用AUC,把所有样本预测为正例,TPR为1,FPR为1。这种情况下学习器的AUC值将等于0.5,成功规避了样本不均衡带来的问题。

 

最后,我们在讨论一下:在多分类问题下能不能使用ROC曲线来衡量模型性能?

我的理解:ROC曲线用在多分类中是没有意义的。只有在二分类中Positive和Negative同等重要时候,适合用ROC曲线评价。如果确实需要在多分类问题中用ROC曲线的话,可以转化为多个“一对多”的问题。即把其中一个当作正例,其余当作负例来看待,画出多个ROC曲线。

 

Reference:

1.    《机器学习》周志华著。

2.    机器学习和统计里面的auc怎么理解? - 知乎

https://www.zhihu.com/question/39840928

3.    机器学习和统计里面的auc怎么理解? - 李大猫的回答 - 知乎

https://www.zhihu.com/question/39840928/answer/83576302

4.    机器学习和统计里面的auc怎么理解? - 小小丘的回答 - 知乎

https://www.zhihu.com/question/39840928/answer/84906286

查看评论

MFC编程中“占位符和动态创建”技巧的应用

 刘勇  夏安邦       在MFC编程中,“占位符和动态创建”技巧的应用是十分广泛的,虽然在有些编程书籍和文章中有所涉及,但缺乏系统的介绍和必要的总结,给应用带来不便。本文将对这方面的编程技巧进行...
  • think77
  • think77
  • 2001-01-06 16:43:00
  • 735

【机器学习】分类性能度量指标 : ROC曲线、AUC值、正确率、召回率、敏感度、特异度

本文转自 http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/ 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程...
  • tanzuozhev
  • tanzuozhev
  • 2018-01-19 17:43:35
  • 649

PR曲线和F1、ROC曲线和AUC

最近阅读机器学习,在评估学习器的性能时,书中提到了P、R、F1值度量和ROC曲线和AUC值度量。P、R、F1 预测结果 正例 ...
  • teminusign
  • teminusign
  • 2016-07-21 14:56:24
  • 1610

ROC曲线和AUC面积理解

关注微信公众号【Microstrong】,我现在研究方向是机器学习、深度学习,分享我在学习过程中的读书笔记!一起来学习,一起来交流,一起来进步吧!本文同步更新在我的微信公众号中,公众号文章地址:htt...
  • program_developer
  • program_developer
  • 2018-04-15 10:08:58
  • 96

机器学习之性能分析

机器学习之性能度量
  • sinat_37542106
  • sinat_37542106
  • 2017-10-10 14:38:22
  • 262

关于ROC和AUE

什么是AUE AUC是指 随机给定一个正样本和一个负样本,分类器输出的正样本的概率 比 分类器出去负样本的概率 大的可能性 先参看下面两个回答: https://www.zhihu.com/que...
  • molu_chase
  • molu_chase
  • 2017-10-19 16:46:51
  • 188

模型评估

ROC曲线  接收器操作特性曲线(receiver operating characteristic curve),曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定...
  • CherDW
  • CherDW
  • 2017-01-07 20:13:12
  • 1795

时间序列分析——知乎话题讨论(收集)

1)首先尽量简化数据,让每一个输入都有很规范的格式。每一个输入源必须是mean 0,variance 1。假如说不能直接用价格;要用价格的差距。这样才可以客观比较每个输入的作用。而且很多模型本来就有这...
  • u010159842
  • u010159842
  • 2016-11-07 13:34:42
  • 912

RMSE、MAPE、准确率、召回率、F1、ROC、AUC数据挖掘中的性能指标总结

RMSE(root mean square error)均方根误差单纯统计误差的值。MAPE(mean absolute percentage error) 平均百分比误差存在一个和原始数据相比较的过...
  • ge_nious
  • ge_nious
  • 2018-03-06 16:43:07
  • 16

机器学习备忘录 | AUC值的含义与计算方法

引言 在机器学习领域,AUC值经常用来评价一个二分类模型的训练效果,对于许多机器学习或者数据挖掘的从业者或在校学生来说,AUC值的概念也经常被提起,但由于大多数时候我们都是借助一些软件包来训练机器学...
  • MiMicoa
  • MiMicoa
  • 2018-04-12 00:04:06
  • 11
    我的微信公众号
      Microstrong
      关注微信公众号【Microstrong】,我写过四年Android代码,了解前端、熟悉后台,现在研究方向是机器学习、深度学习!一起来学习,一起来进步,一起来交流吧!
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 3万+
    积分: 1380
    排名: 3万+
    博客专栏
    最新评论