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

【机器学习】了解 AUC - ROC 曲线

一、说明

        在机器学习中,性能测量是一项基本任务。因此,当涉及到分类问题时,我们可以依靠AUC - ROC曲线。当我们需要检查或可视化多类分类问题的性能时,我们使用AUC(曲线下面积)ROC(接收器工作特性)曲线。它是检查任何分类模型性能的最重要评估指标之一。

 本博客旨在回答以下问题:

  • 1. 什么是 AUC - ROC 曲线?
  • 2. 定义 AUC 和 ROC 曲线中使用的术语。
  • 3. 如何推测模型的性能?
  • 4. 敏感性、特异性、FPR 和阈值之间的关系。
  • 5. 如何在多类模型中使用 AUC - ROC 曲线?

二、什么是 AUC - ROC 曲线?

        AUC - ROC 曲线是各种阈值设置下分类问题的性能度量。ROC 是一条概率曲线,AUC 表示可分离性的程度或度量。它告诉模型能够区分类的程度。AUC 越高,模型在将 0 个类预测为 0 和将 1 个类预测为 1 方面越好。以此类推,AUC越高,模型在区分有疾病和无疾病患者方面就越好。

        ROC 曲线使用 TPR 与 FPR 绘制,其中 TPR 在 y 轴上,FPR 在 x 轴上。

AUC - ROC 曲线

 

三、定义 AUC 和 ROC 曲线中使用的术语。

3.1 TPR(真阳性率)/召回率/灵敏度

 

3.2 特异性

 

3.3 FPR

 

四、如何推测模型的性能?

        优秀的模型的 AUC 接近 1,这意味着它具有良好的可分离性。较差的模型的 AUC 接近 0,这意味着它的可分离性度量最差。事实上,这意味着它正在回报结果。它将 0 预测为 1,将 1 预测为 0。当 AUC 为 0.5 时,意味着模型没有任何类别分离能力。 我们来解读一下上面的说法。 众所周知,ROC是一条概率曲线。那么让我们绘制这些概率的分布: 注:红色分布曲线为正类(患病患者),绿色分布曲线为负类(无疾病患者)。

        这是一个理想的情况。当两条曲线完全不重叠时,意味着模型具有理想的可分离性度量。它完全能够区分正类和负类。

        

        当两个分布重叠时,我们引入类型 1 和类型 2 错误。根据阈值,我们可以最小化或最大化它们。当 AUC 为 0.7 时,这意味着模型有 70% 的机会能够区分正类和负类。

        

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

        

        当 AUC 大约为 0 时,模型实际上是在往复类。这意味着模型将负类预测为正类,反之亦然。

五、灵敏度、特异性、FPR 和阈值之间的关系。

        敏感性和特异性成反比。因此,当我们增加灵敏度时,特异性会降低,反之亦然。

敏感性,特异性和敏感性⬆️⬇️,特异性⬇️⬆️

        当我们降低阈值时,我们得到更多的正值,从而增加敏感性并降低特异性。

        同样,当我们增加阈值时,我们会得到更多的负值,从而获得更高的特异性和更低的灵敏度。

        众所周知,FPR 是 1 - 特异性。因此,当我们增加TPR时,FPR也会增加,反之亦然。

TPR,FPR和TPR,FPR⬆️⬆️⬇️⬇️

六、如何在多类模型中使用 AUC ROC 曲线?

        在多类模型中,我们可以使用 One vs ALL 方法绘制 N 个类的 N 个 AUC ROC 曲线。例如,如果您有名为 X、Y 和 Z 的三个类,则将有一个针对 Y 和 Z 分类的 X 的 ROC,另一个针对 Y 分类的 Y 的 ROC,以及针对 Y 和 X 分类的第三个 Z。

http://www.lryc.cn/news/95294.html

相关文章:

  • Docker 容器生命周期:创建、启动、暂停与停止----从创建到停止多角度分析
  • C++STL库中的vector
  • PHP 药店管理系统mysql数据库web结构apache计算机软件工程网页wamp
  • 【多选框、表格全选】element el-checkbox、el-table
  • 【Java】微服务负载均衡算法实现
  • 分类、回归常用损失函数
  • SaaS到底是什么,如何做?这份笔记讲明白了
  • Python 单继承、多继承、@property、异常、文件操作、线程与进程、进程间通信、TCP框架 7.24
  • 【英杰送书第三期】Spring 解决依赖版本不一致报错 | 文末送书
  • ClickHouse修改和删除操作
  • 比selenium体验更好的ui自动化测试工具: cypress介绍
  • Python编译过程和执行原理
  • opencv 图像距离变换 distanceTransform
  • 消息队列——rabbitmq的不同工作模式
  • QT实现用户登录注册功能
  • Docker--harbor私有仓库部署与管理
  • idea复制一份web服务在不同端口启动
  • CRM系统化整合从N-1做减法实践 | 京东物流技术团队
  • STM32CUBUMX配置RS485(中断接收)--保姆级教程
  • 苹果iOS 16.6 RC发布:或为iPhone X/8系列养老版本
  • 【100天精通python】Day16:python 模块的搜索目录和导入模块异常时的处理方法
  • SOC FPGA介绍及开发设计流程
  • MySQL vs. Oracle: 函数比较与联系
  • 【Django学习】(十五)API接口文档平台_项目流程分析_日志器_认证_授权
  • 经营简报及考核360表格
  • Spring Security 构建基于 JWT 的登录认证
  • PyTorch从零开始实现Transformer
  • 运动蓝牙耳机什么牌子的好用、最好用的运动蓝牙耳机推荐
  • HTTP、HTTPS协议详解
  • 【算法与数据结构】222、LeetCode完全二叉树的节点个数