当前位置: 首页 > news >正文

(done) ROC曲线 和 AUC值 分别是什么?

来源:https://www.bilibili.com/video/BV1wz4y197LU/?spm_id_from=333.337.search-card.all.click&vd_source=7a1a0bc74158c6993c7355c5490fc600


在二分类问题下,我们的模型通常会输出一个 概率值,通过判断 概率值 和 阈值threshold 的大小,来判断一个样本是正例还是负例。如下图所示。
在这里插入图片描述

通过取 (0, 1) 的不同阈值threshold,我们可以得到许多不同的混淆矩阵
在这里插入图片描述

那么,有一个问题:
在这里插入图片描述

有的,答案就是:
在这里插入图片描述

如下图是 ROC 曲线的示例:
两个概念:
1.TPR (True Positive Rate): TPR = (TP) / (TP + FN) 意思是:真正例占所有正例的比率,也就是 recall 召回率
2.FPR (False Positive Rate): FPR = (FP) / (FP + TN) 意思是:假正例占所有负例的比率,可以理解为出错的概率(似乎没有其它转有名词)
每一个混淆矩阵,我们都可以求出一对 (TPR, FPR)。当我们有很多个混淆矩阵时,我们就有很多对 (TPR, FPR),那么此时就可以在二维平面上画下如下图的曲线。
在这里插入图片描述

把这个 ROC 曲线的计算方法放到之前的 “汉堡分类” 问题上,如下是计算后得到的 ROC 曲线
在这里插入图片描述

TPR 可以理解为 “正确率”
FPR 可以理解为 “错误率”
因此,越好的分类器,TPR越高,FPR越低
在下图中可以看到 A B 两条 ROC 曲线,ROC曲线越靠近左上角的分类器越好
如下图,分类器B的 ROC曲线更加靠近左上角,因此分类器B是更好的分类器
在这里插入图片描述

如果使用数值而不是图片来表示 性能,那么我们可以使用 ROC 曲线和横轴之间的面积来表示 分类器性能
如下图,棕色AUC 和 蓝色AUC 分别表示 棕色曲线 和 蓝色曲线 和横轴之间的面积
在这里插入图片描述

如果 N 分类,怎么计算 AUC 呢?
这里有 macro宏观AUC 和 micro微观AUC
macro宏观AUC:针对每个类别求一个 ROC 曲线,求对应的 AUC 值,随后针对所有类别的 AUC 值求某种平均
micro微观AUC:假设概率预测结果如下图上表所示 (样本1是类别C1的概率是 P(1,1) …) (橙色表示样本1的真实类别)
我们可以把下图上表转换成下图下表
下图下表看起来就是一个二分类问题
我们可以使用下图下表来获取一个新的针对整个模型的 ROC 曲线以及相应的 AUC 值
在这里插入图片描述

相关文章:

  • 奥特曼回应GPT5
  • Mysql设计规范
  • 更高效的反射调用方式被我找到了!
  • Apollo(阿波罗)配置中心
  • 粗糙度对应表,觉得挺实用
  • python编程之黑洞文件
  • HCIA——TCP协议详解
  • Docker镜像操作
  • 【翻译】Attentive Pooling Networks
  • web学习笔记(四十)
  • 录视频的软件推荐,助力视频内容创作
  • [Django 0-1] Core.Email 模块
  • MacOS安装Homebrew教程
  • 力扣---完全平方数
  • iOS常见崩溃简介
  • echarts花样作死的坑
  • FastReport在线报表设计器工作原理
  • gitlab-ci配置详解(一)
  • IP路由与转发
  • JavaScript标准库系列——Math对象和Date对象(二)
  • java中的hashCode
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Vue--数据传输
  • 大主子表关联的性能优化方法
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于Android乐音识别(2)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 聊聊redis的数据结构的应用
  • 什么是Javascript函数节流?
  • 试着探索高并发下的系统架构面貌
  • 首页查询功能的一次实现过程
  • 一道面试题引发的“血案”
  • 正则表达式小结
  • HanLP分词命名实体提取详解
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 进程与线程(三)——进程/线程间通信
  • ​Linux·i2c驱动架构​
  • # Java NIO(一)FileChannel
  • #Lua:Lua调用C++生成的DLL库
  • $.proxy和$.extend
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (六)软件测试分工
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (三)uboot源码分析
  • (十一)c52学习之旅-动态数码管
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • ***监测系统的构建(chkrootkit )
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET框架设计—常被忽视的C#设计技巧
  • @Import注解详解
  • @RestController注解的使用