干货 | 一文完全理解AUC-ROC曲线

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

来源: https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5

翻译:石头

a914ec18f579c51c03a7becabadff133.png

机器学习模型的性能测量是一项必不可少的工作,因此,当涉及到分类问题时,我们可以考虑用AUC-ROC曲线 。 当我们需要检查或可视化多分类问题的性能时,我们使用ROC曲线下的面积(AUC),它是检验任何分类模型性能最重要的评估指标之一。

本文旨在回答以下问题:

1. 什么是AUC-ROC曲线 ?

2. 定义AUC和ROC曲线中使用的术语

3. 如何推测分类模型的性能 ?

4. 灵敏度、特异度、FPR与阈值的关系

5. 如何将AUC-ROC曲线用于多分类模型

1. 什么是AUC-ROC曲线

AUC-ROC曲线是在不同阈值设置的条件下,分类问题的性能度量。ROC的含义为概率曲线,AUC的含义为正负类可正确分类的程度。它告诉模型能够在多大程度上区分类,AUC越高,模型越能预测0为0和1为1。类比疾病诊断模型,若AUC越高,模型对有疾病和无疾病的区分就越好。

ROC曲线由TPR与FPR作图,其中TPR是y轴,FPR是x轴。如下图:

9f83b2f834d170e3964d799325f7f82b.png

2. AUC-ROC曲线的术语定义

真阳率(TPR)/召回率(Recall)/敏感度(Sensitivity):

796ddd68f17959ccdfd3cd1950c553c5.png

特异度(Specificity)

5673064bc4b6c8c8e74cc42c2b4cb2e6.png

假阳率(FPR)

5f3153c1333584ace98ef0255aceca9a.png

3. 如何推测分类模型的性能

一个优秀的模型AUC接近于1,这意味着它具有良好的可分性。一个差模型的AUC接近于0,意味着它的可分性最差,意味着模型预测0是1,1是0。当AUC为0.5时,表示模型没有任何的分类能力,意味这随机给出分类结果。

让我们来解释以下上面的陈述。

我们知道,ROC是概率曲线,我们画出这些概率的分布,

备注:红色分布曲线为正类(有疾病者),绿色分布曲线为负类(无疾病者)。

a07fb580bfc9f48fa2820b6923a8d251.png

如上图为正类和负类的分布,我们根据ROC曲线的定义,以阈值为1向0移动,得到相应的TPR和FPR,因此我们根据上图可画出ROC曲线,ROC曲线下的面积等于1,即AUC=1。

ROC曲线图如下:

fe5b4dc977bd36127d5e13227a7bfeb3.png

同理,我们根据下图的正负类分布画出ROC曲线,AUC = 0.7

1b0ccc661991c4fa87440c68072804ba.png

当正负类的分布完全相同时,即模型的分类结果是随机给出的,即AUC=0.5,如下图的正负类分布和ROC曲线:

5fb5036416ee229fd1a896d4f45b1ffd.png

AUC=0.5时,模型没有区分正类和负类的能力,这是最糟糕的情况。

当AUC=0时,模型完全预测错误,即负类预测为正类,正类预测为负类。

4. 敏感度(Sensitivity)、特异度(Specificity)、FPR与阈值(Threshold)的关系

敏感度和特异度成反比,当我们增加敏感度时,特异度下降,反之亦然。

5eb1360e00a6e2fc7d423d77ae612cbd.png

解释 :当我们降低阈值时,我们的预测结果会得到更多的正值,从而增加了敏感度,降低了特异度。

同样地,当我们增加阈值时,我们的预测结果会得到更多的负值,从而增加了特异度,降低了灵敏度。

正如我们所知道的,FPR = 1 - 特异度,所以当我们增加TPR时,FPR也会增加,反之亦然。

fd8ea708089c4546397b22ceaa48cc18.png

5. 如何将AUC-ROC曲线用于多分类模型

在多分类模型中,我们可以用一种方法绘制N个类别的AUC-ROC曲线。举个例子,如果你有3个类别,X,Y,Z。你会绘制出3个ROC曲线,一个ROC曲线代表X,对应Y和Z,一个ROC曲线达标Y,对应X和Z,一个ROC曲线代表Z,对应Y和X。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值