【性能评估】ROC曲线

【性能评估】ROC曲线1.混淆矩阵(confusionmatrix)   针对预测值和真实值之间的关系,我们可以将样本分为四个部分,分别是:   真正例(TruePositive,TP):预测值和真实值都为1   假正例(FalsePositive,FP):预测值为1,真实值为0 &nbs…

大家好,又见面了,我是你们的朋友全栈君。

1.混淆矩阵(confusion matrix)

    针对预测值和真实值之间的关系,我们可以将样本分为四个部分,分别是:

    真正例(True Positive,TP):预测值和真实值都为1

    假正例(False Positive,FP):预测值为1,真实值为0

    真负例(True Negative,TN):预测值与真实值都为0

    假负例(False Negative,FN):预测值为0,真实值为1

    我们将这四种值用矩阵表示(图片引自《machine learning:A Probabilistic Perspective》):

    image

    上面的矩阵就是混淆矩阵。

   2.ROC曲线

     通过混淆矩阵,我们可以得到真正例率(True Positive Rate , TPR):

    clip_image002

    我们还可以得到假正例率(False Positive Rate  , FPR):

    clip_image002[5]

    可以看到,TPR也就是我们所说的召回率,那么只要给定一个决策边界阈值clip_image002[7],我们可以得到一个对应的TPR和FPR值,然而,我们不从这个思路来简单的得到TPR和FPR,而是反过来得到对应的clip_image002[9],我们检测大量的阈值clip_image002[7],从而可以得到一个TPR-FPR的相关图,如下图所示(图片引自《machine learning:A Probabilistic Perspective》):

image

    图中的红色曲线和蓝色曲线分别表示了两个不同的分类器的TPR-FPR曲线,曲线上的任意一点都对应了一个clip_image002[9]值。该曲线就是ROC曲线(receiver operating characteristic curve)。该曲线具有以下特征:

  • 一定经过(0,0)点,此时
    clip_image002[13],没有预测为P的值,TP和FP都为0
  • 一定经过(1,1)点,此时
    clip_image002[15],全都预测为P
  • 最完美的分类器(完全区分正负样例):(0,1)点,即没有FP,全是TP
  • 曲线越是“凸”向左上角,说明分类器效果越好
  • 随机预测会得到(0,0)和(1,1)的直线上的一个点
  • 曲线上离(0,1)越近的点分类效果越好,对应着越合理的
    clip_image002[9]

    从图中可以看出,红色曲线所代表的分类器效果好于蓝色曲线所表示的分类器。

3.利用ROC的其他评估标准

  • AUC(area under thecurve),也就是ROC曲线的下夹面积,越大说明分类器越好,最大值是1,图中的蓝色条纹区域面积就是蓝色曲线对应的 AUC
  • EER(equal error rate),也就是FPR=FNR的值,由于FNR=1-TPR,可以画一条从(0,1)到(1,0)的直线,找到交点,图中的A、B两点。

 

 

ROC曲线和AUC面积理解

版权声明:本文为博主原创文章,欢迎大家转载,但是要注明我的文章地址。 https://blog.csdn.net/program_developer/article/details/79946787

 

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

【性能评估】ROC曲线
图1:ROC曲线与AUC面积   

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

三、 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曲线是由坐标为【性能评估】ROC曲线的点按序连接而形成,参见图2,则AUC可估算为公式3。

 【性能评估】ROC曲线

六、 AUC面积的意义

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

  看到这里,是不是很疑惑,根据AUC定义和计算方法,怎么和预测的正例排在负例前面的概率扯上联系呢?如果从定义和计算方法来理解AUC的含义,比较困难,实际上AUC和Mann-WhitneyU test(曼-慧特尼U检验)有密切的联系。从Mann-Whitney U statistic的角度来解释,AUC就是从所有正样本中随机选择一个样本,从所有负样本中随机选择一个样本,然后根据你的学习器对两个随机样本进行预测,把正样本预测为正例的概率【性能评估】ROC曲线,把负样本预测为正例的概率【性能评估】ROC曲线【性能评估】ROC曲线>【性能评估】ROC曲线的概率就等于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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145391.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Apache 安装与配置「建议收藏」

    Apache 安装与配置「建议收藏」一、下载http://httpd.apache.org/download.cgi二、安装安装过程很简单,因为是压缩包,所以,先将其解压包中的Apache24解压到合适的位置,我将其解压到了D盘soft目录。配置找到D:\soft\Apache24\conf\httpd.conf文件,用记事本打开,找到DefineSRVROOT…

  • js中clientHeight、offsetHeight、scrollHeight、scrollTop详解「建议收藏」

    js中clientHeight、offsetHeight、scrollHeight、scrollTop详解「建议收藏」clientHeight大家对clientHeight都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。offsetHeightIE、Opera认为offsetHeight=clientHeight+滚动条+边框。NS、FF认为offsetH

  • 少儿编程app排名_终于明白少儿编程软件哪个好「建议收藏」

    小孩子学习语言的能力很强。虽然成年人大脑的效率可能更高,但人越年轻,大脑越具有可塑性。今天小编主要给大家分享少儿编程软件哪个好,希望对你们有帮助!1.费雪思考&学习code-a-pillar(付费,基于iOS/Android)费雪思考&学习code-a-pillar这个应用程序有一个独特的优势:它包含一个应用程序和一个实物的玩具。虽然让孩子们通过实践学习技术和编程是一个好主…

  • 谷歌学术403异常处理「建议收藏」

    谷歌学术403异常处理「建议收藏」谷歌学术403异常处理解决方法解决方法百度了几个方法,下面的可以解决问题:首先要在Chrome上安装Ghelper插件在Ghelper上进行注册下载地址:地址下载之后安装方式:1.打开你的Chrome浏览器的更多工具>扩展程序页面.或者直接在网址输入:chrome://extensions/2.这个页面点击“添加已解压的扩展程序”,如果没有,在右边有一个“开发者模式”开关,要打开.3。选择本次下载包里的ghelper_source目录4.或者将下载包中的CRX文件

    2022年10月11日
  • 较新颖的智能优化算法[通俗易懂]

    较新颖的智能优化算法[通俗易懂]32个较新颖的智能优化算法序号方法参考文献年份1人群搜索算法Dai,C.,Y.Zhu,andW.Chen.Seekeroptimizationalgorithm.inInternationalConferenceonComputationalandInformationScience.2006.Springer.20062人工蜂群算法Karaboga,D.andB.J.J.o.g.o.Basturk,Apowerfu

  • python进阶(15)多线程与多进程效率测试「建议收藏」

    python进阶(15)多线程与多进程效率测试「建议收藏」前言在Python中,计算密集型任务适用于多进程,IO密集型任务适用于多线程正常来讲,多线程要比多进程效率更高,因为进程间的切换需要的资源和开销更大,而线程相对更小,但是我们使用的Python大多

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号