AUC是一种衡量机器学习模型分类性能的重要且非常常用的指标,其只能用于二分类的情况.

AUC的本质含义反映的是对于任意一对正负例样本,模型将正样本预测为正例的可能性 大于 将负例预测为正例的可能性的 概率( :-) 没办法这句话就是这么绕, rap~).

AUC作为数值,那么到底是怎么来的?怎么理解它的意义?

在真正接触AUC之前,还需要了解两个概念, 分别是混淆矩阵(confusion matrix) 和 ROC曲线.

混淆矩阵:

混淆矩阵.png

可以看出混淆矩阵由四个值构成:

TP : 真实类别为1,且预测结果为1的样本个数,预测正确.

FP : 真实类别为0,且预测结果为1的样本个数,预测错误.

FN : 真实类别为1,且预测结果为0的样本个数,预测错误.

TN : 真实类别为0,且预测结果为0的样本个数,预测正确.

由混淆矩阵可以计算得到ROC曲线的关键参数:TPR(真正例率) 和 FPR(假正例率).

对TPR最通俗易懂的理解即将正例预测为正例的比例

对FPR最通俗易懂的理解即将负例预测为正例的比例(注意: TPR和FPR分子上表示的都是模型将样本预测为正例的情况,不过一个是预测正确一个是预测错误)

理解到这个程度就可以接触ROC曲线了

ROC curve

可以从图上面看出,FPR和TPR分别是ROC曲线的横坐标和纵坐标.对于ROC曲线有四个点需要单独拎出来理解,这对理解AUC也是很有帮助的.它们分别是:

[0, 0] : FPR,TPR均为0.根据式(1)(2)可以得到即TP=FP=0,其含义为模型将所有样本均预测为负例.

[0, 1] : FPR=0,TPR=1. 根据式(1)(2)可以得到即FP=FN=0,其含义为模型做出了没有任何错误的完美预测(由此可以看出ROC曲线越是向上凸(贴近上边界),曲线上的点的纵坐标(TPR)越是大,代表模型的性能越好).

[1, 0] : FPR =1,TPR=0.根据式(1)(2)可以得到即TP=TN=0,其含义为模型做出的预测全部错误(由此可以看出,ROC曲线越是贴近下边界(下凹),那么模型的性能越是差).

[1, 1] : FPR =1,TPR=1.根据式(1)(2)可以得到即TN=FN=0,其意义为模型将所有样本均预测为正例.

此外,对于图ROC curve中的三根曲线的理解:

黑线: 几何含义即ROC图的对角线, 数值含义即TPR = FPR,物理含义即对于任意抽取的样本,模型将其中正例预测为正例的概率和将负例预测为正例的概率是相等的.这也就意味着和随机分类的性能一样.

红蓝色线: 通常来讲, 我们的机器学习模型要优于随机分类器,因此我们经常看到的曲线往往都是像蓝色线和红色线一样的ROC曲线.它们相比黑线是有明显上凸的,同样的横坐标(FPR)下,红蓝线纵坐标(TPR)是大于黑线的,即代表模型将正例预测为正例的概率要大于将负例预测为正例的概率.同理可以看出蓝线模型由于红线模型.

如果要将上述的标准进行定量评估,就延伸得到了AUC, AUC即ROC曲线下方与坐标轴围成的面积大小

AUC(Area under the ROC curve)

AUC更直观地反应了ROC曲线向我们表达的模型分类能力.其数值大小(越大越好)代表了模型的性能优劣.说到这里,自然也就能够明白开篇关于AUC物理意义的阐述了,重申一遍即:AUC的本质含义反映的是对于任意一对正负例样本,模型将正样本预测为正例的可能性 大于 将负例预测为正例的可能性的 概率(例如: 当AUC = 0.5, ROC曲线为黑线时, 模型将一对正负例样本中的正样本预测为正例的概率为0.5,将负样本预测为正例的概率也为0.5,等效于随机分类预测).

AUC = 1,代表完美分类器

0.5 < AUC < 1,优于随机分类器

0 < AUC < 0.5,差于随机分类器

如何绘制ROC曲线?

绘制曲线,必不可少的就是拿到曲线上的点,也就是需要get到每个点的TPR和FPR数值.

这里借用在知乎上看到的例子啦:

Case_1:

对于像SVM这样的硬分类器,分类得到的结果都是已经标记完成的二分类数值(0/1).就长下面这个样子:

由此很容易得到混淆矩阵Confusion Matrix:

fpr-and-tpr.png

imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

已经拿到TP/FP/TN/FN,那么可以计算出TPR = 3/4, FPR = 2/4.从而可以绘制得到ROC曲线:

ROC_1

Case_2:

对于逻辑回归LR, 还有常用的xgb, lgb而言,分类的预测结果都是一个分类概率值.比如长这个样子:

这种情况,看起来就一脸懵逼,因为完全没有预测好的标签. 这个时候就需要我们先将预测结果进行排序,逐步调整分类的阈值, 依次将样本划为正例,然后计算TPR和FPR的数值进行绘图.

步骤:

threshold = 0.9, 即只有第一个样本被划分为正例,此时TPR = 1/4, FPR = 0.

threshold = 0.8, 此时TPR = 2/4, FPR = 0.

threshold = 0.7, 此时TPR = 2/4, FPR = 1/4.

......

threshold = 0.1, 此时TPR = 1, FPR = 1.

最后绘图即可.

说了这么多, 最后强调一下AUC作为评价指标的优势:

由于AUC是与TPR核FPR密切相关的,而TPR和FPR分别从正例,负例的角度上去衡量了模型的分类能力(具有跟精准率和召回率一样的能在样本极端不平衡的情况下进行有效的衡量优势),因此在样本极端不平衡的情况下,AUC依然能够做出合理的评价. :-)

All

AUC的计算方式:

最为直观的方式当然是绘制出ROC曲线,然后计算出曲线下包绕的面积,面积值即AUC.

2.直接计算:假设总共有(m+n)个样本,其中正样本m个,负样本n个,总共有mn个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(mn)就是AUC的值

auc到多少有意义_对模型评价指标AUC的理解相关推荐

  1. auc到多少有意义_理解AUC

    本文主要讨论了auc的实际意义,并给出了auc的常规计算方法及其证明 1 ROC曲线和auc 从二分类说起,假设我们的样本全集里,所有样本的真实标签(label)为0或1,其中1表示正样本,0表示负样 ...

  2. auc到多少有意义_为什么医学中的AUC可以代表药物进入血液循环的量

    为什么医学中的 AUC 可以代表药物进入血液循环的量 首先介绍下什么是 AUC , AUC(area under curve) ,根 据其英文名称不难看出,确实是描述的药时曲线下的面积! 曲线如下:向 ...

  3. 对模型评价指标AUC的理解

    AUC是一种衡量机器学习模型分类性能的重要且非常常用的指标,其只能用于二分类的情况. AUC的本质含义反映的是对于任意一对正负例样本,模型将正样本预测为正例的可能性 大于 将负例预测为正例的可能性的 ...

  4. 混淆矩阵评价指标_机器学习模型评价指标 -- 混淆矩阵

    机器学习模型评价指标 – 混淆矩阵 在机器学习领域中,混淆矩阵(confusion matrix)是一种评价分类模型好坏的形象化展示工具.其中,矩阵的每一列表示的是模型预测的样本情况:矩阵的每一行表示 ...

  5. 推荐模型评价指标 AUC

    推荐中常用的模型评价指标有准确率,召回率,F1-score和AUC. 1. 什么是AUC AUC指标是一个[0,1]之间的实数,代表如果随机挑选一个正样本和一个负样本,分类算法将这个正样本排在负样本前 ...

  6. auc到多少有意义_AUC及其理解

    在互联网精准广告中,可以从多个角度来评估一个CTR模型的性能,但通常以AUC作为模型评估的最直接指标,直观上讲,AUC是从排序能力的角度来对模型进行评估.下面将详细解释AUC的含义及其计算方式, 2 ...

  7. python gil锁存在的意义_对于Python的GIL锁理解

    GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可 ...

  8. python程序题求roc-auc是一种常用的模型评价指标_模型评价方法

    第五章 模型评价方法 5.1 模型的评价方法介绍 5.1.1~5 accuracy,precision,recall,F1-score,ROC曲线 分别画图举例,要说出应用场景,例如什么情况用什么评价 ...

  9. 二分类最优阈值确定_分类模型评价标准,AUC还是Macro F1?

    在人工智能领域,分类任务占据了很大的比例,例如物体识别(计算机视觉).信用卡欺诈(数值型预测).情感分析(自然语言处理)等等.针对众多的分类需求,模型的评价标准只是简单的准确率(Accuracy)吗? ...

最新文章

  1. Kotlin 使用list.add 时候报错的处理方法
  2. 读Lodash源码——chunk.js
  3. python第五章_Python数据分析-第5章Series(下)
  4. bzoj 2653 middle (可持久化线段树)
  5. 百度定位sdk使用说明
  6. 课后作业-阅读任务-阅读笔记4
  7. 互联网之道,看电商的数据化管理方案
  8. git实现ssh免密上传远程gitlab仓库
  9. 怪物刷新时间计时_《冒险岛2》游戏中查找怪物刷新时间
  10. unity mysql 中文乱码_unity3d链接postgresql,读数据库内容并且显示(读出的中文在编辑器中乱码,发布standalone正常)...
  11. 制图大赛计算机二维绘图,第五届“高教杯”全国大学生先进成图技术与产品信息建模创新大赛 机械类 计算机绘图试卷.pdf...
  12. 《C语言程序设计》江宝钏主编-习题6-2-排列数
  13. Skywalking概述
  14. 面向对象 --OOP
  15. 新BOS2.0物流业务逻辑
  16. 【UML】——活动图
  17. bvs是什么意思_股票b和s是什么意思,区别原来这么简单
  18. Jenkins构建时间变量
  19. Facebook的预填问题默认可以设定哪些类型。
  20. 条码/RFID标签打印方案

热门文章

  1. 个人整理--微信公众号开发之页面开发
  2. linux pgrep命令使用示例
  3. 这么多年不容易...我很庆幸等到现在的你——知乎上关于男人成熟的好故事
  4. 2021年05月09日第十二届蓝桥杯第二场省赛试题及详解(Java本科B组)
  5. php中ajax用法,PHP中AJAX的使用(完整实例)
  6. 带自动收录批量验证简洁的福利网址导航源码
  7. openCV 隔帧读取视频帧的方式
  8. java中文文档docset_Docset文档制作教程
  9. 智能物联网 Linux C/C++工程师,具备哪些技能才能轻松应对面试
  10. 《腾讯网UED体验设计之旅》总结:尼尔森启发式评估十原则