【机器学习300问】46、什么是ROC曲线?

一、二分类器的常用评估指标有哪些?

        二分类器是机器学习领域中最常见的也是应用最广泛的分类器。评价二分类器的指标也很多,下面列出几个我之前重点写文章介绍过的指标。

(1)准确率(Accuracy)

        定义为分类正确的样本数占总样本数的比例,在类别分布均匀的情况下,准确率是一个直观有效的评估指标,但在类别不平衡数据集上可能不能很好地反映分类器性能。

(2)精确率(Precision)

        定义为被预测是正类的样本中实际为正类的比例,对于那些错判代价高的场景特别重要,例如医疗诊断中,高精确率意味着模型预测为阳性的结果中有很高比例确实是真实的病例。

(3)召回率(Recall)

        定义为实际是正类的样本中被正确预测为正类的比例,在某些情况下,如罕见事件检测或安全预警系统中,高召回率至关重要,因为它反映了模型能否找出所有的正类实例。

(4)F1分数(F1 Score)

        定义为精确率和召回率的调和平均数,用来同时考虑两者的表现。F1值在精确率和召回率之间取得平衡,通常用于综合评估分类器的效果。

如果友友们想细致了解上述指标,可以看看我的这篇文章:

【机器学习300问】25、常见的模型评估指标有哪些?icon-default.png?t=N7T8http://t.csdnimg.cn/g0aM0

二、什么是ROC曲线?

        ROC曲线(Receiver Operating Characteristic Curve)是一种直观且强大的可视化工具,用于评估和比较二分类模型(二分类器),在不同阈值条件下的表现好坏。他的中文直译是“受试者工作特征曲线”。

(1)先得知道几个概念

        为了让概念生动活泼,我在这里全部用医院检测癌症的二分类任务说明。

名词解释
阳性P当医学检测或测试预测出一个人患有癌症时,这个结果被称为阳性。阳性通常指标签为“是”的正分类结果。
阴性N如果检测或测试结果表明一个人没患癌症,那么结果是阴性。阴性通常指标签为“否”的负分类结果。
真阳性TP当测试结果预测为阳性,并且这个预测是正确的(即该人确实患有癌症),则这样的结果称为真阳性。
假阳性FP当测试结果预测为阳性,但这个预测是错误的(即该人实际上没有患癌症),则这个结果称为假阳性。
真阳性率TPR真阳性率,也称为召回率或灵敏度。是真阳性的数量除以实际全部阳性的数量(真阳性加上假阴性)\text{TPR}=\frac{TP}{TP + FN}=\frac{TP}{P}。换言之,它指在所有真实情况为阳性的样本中,被正确识别为阳性的比例。
假阳性率FPR假阳性率,也称特异度。是假阳性的数量除以实际全部阴性的数量(假阳性加上真阴性)\text{FPR} = \frac{FP}{FP + TN}=\frac{FP}{N}。这个比率告诉我们在所有实际为阴性的样本中,有多少被错误地识别为阳性。

(2)ROC曲线的定义

        在ROC曲线图上,我们将假阳性率\text{FPR}放在X轴上真阳性率\text{TPR}放在Y轴上每种可能的阈值对应图上一个点,连接这些点形成的曲线就是ROC曲线。

ROC曲线
ROC曲线

        如上图所示理想的模型会有一条靠近左上角的曲线,因为这意味着在保持很低的误报率的同时,有着很高的正确发现率。图中虚线表示分类能力如同随机分类,分类器的ROC曲线越往左上角靠就越说明这个分类器效果好。

(3)举例说明

        现在用我最喜欢的举例说明为大家介绍什么是ROC曲线。

假设有一家医院,现在需要诊断病人。有10位疑似癌症患者,其中有3位很不幸确实得了癌症(P=3),另外7位不是癌症患者(N=7)。医院对这10个疑似癌症患者做了诊断,诊断出了3位癌症患者,其中有2位确实是真患者(TP=2)。那么真阳性率是TPR=\frac{TP}{P}=\frac{2}{3}。对于7位非癌症患者来说,有一位很不幸被误诊为癌症患者(FP=1),那么假阳性率是FPR=\frac{FP}{N}=\frac{1}{7}。对于这个医院(二分类器)来说这组分类结果就对应了ROC曲线上的一个点(\frac{1}{7},\frac{2}{3})

三、ROC曲线对比这些个常用指标有什么优势?

        ROC曲线相对于其他一些常用的二分类评估指标,有以下优势。

(1)不依赖阈值

        ROC曲线展示了分类器在所有可能阈值下的真阳性率(TPR,Sensitivity)和假阳性率(FPR,1-Specificity)的关系,因此,它允许我们观察模型在不同决策阈值下的性能而不受单一阈值影响,有助于我们在实际应用中根据业务需求选择合适的阈值。

(2)可以处理类别不平衡问题

        ROC曲线的一个显著优点是对类别不平衡的数据集更稳健。即使正负样本比例变化,ROC曲线形状本身不会改变,因此可以帮助我们在不同样本分布下公平地比较不同模型的性能。

(3)直观全面且易于比较

        ROC曲线提供了一个可视化工具,可以直观地比较不同分类器在区分正负样本上的整体能力。方便在同一坐标系下比较多个分类器的性能,只需查看它们各自的曲线位置及AUC值即可判断哪一个分类器性能更好。(关于AUC后续我还会单独出一篇文章来讲讲)

直观比较模型

        图中可以直观的看出,红色的模型(二分类器)分类效果最好!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/482634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VSGitHub项目联动(上传和克隆),创建你的第一个仓库,小白配置

目录: 前言一,基本说明1.1名词概念1.2必配条件 二,配置方法2.1本地生成密钥2.2云端代码托管平台SSH配置添加(GitHub)2.3VS项目配置 三,参考四,一些讨论 前言 🌈在编写VS代码项目时&a…

详细安装步骤:vue.js 三种方式安装(vue-cli)

Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 三种 Vue.js 的安装方法&…

Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准

前言 Git Commit 是开发的日常操作, 一个优秀的 Commit Message 不仅有助于他人 Review, 还可以有效的输出 CHANGELOG, 对项目的管理实际至关重要, 但是实际工作中却常常被大家忽略,希望通过本文,能够帮助大家规范 Git Commit,并且展示相关 …

03_Mybatis

文章目录 入门案例JDBCMybatis MybatisMybatis介绍Mybatis的环境搭建动态代理增删改查示例事务 Mybatis的配置propertiessettingstypeAliasesenvironmentsmappers 输入映射一个参数多个参数按位置传值对象传值使用Map进行传值 #{}和${}的区别输出映射一个参数多个参数单个对象多…

笔记1-Hadoop之HDFS

Hadoop 开源版本的HADOOP和其他框架的对应关系很混乱,要注意。 Hadoop四大模块:Common HDFS MapReduce Yarn Hadoop能对大量的数据进行分布式处理,可以轻松的从一台服务器扩展到千台服务器,并且 每一台服务器都能进行本地计算和…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图,build的重要过程中会调用_element!.markNeedsBuild();,而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中,BuildOwner负责管理构建…

【ai技术】(4):在树莓派上,使用qwen0.5b大模型+chatgptweb,搭建本地大模型聊天环境,速度飞快,非常不错!

1,视频地址 https://www.bilibili.com/video/BV1VK421i7CZ/ 2,下载镜像 raspberry-pi-os-64-bit https://blog.csdn.net/freewebsys/article/details/136921703 项目地址: https://www.raspberrypi.com/software/operating-systems/#rasp…

【JAVA重要知识 | 第九篇】ConCurrentHashMap源码分析

文章目录 9.ConCurrentHashMap源码分析9.1 ConCurrentHashMap 1.79.1.1存储结构9.1.2初始化9.1.3put流程(1)判断是否要put(key,value)流程(2)put(key,value)(3)自旋获取hash位置的HashEntry 9.1.4 rehash扩…

【力扣hot100】1. 两数之和 49.字母异位词分组 128. 最长连续序列

目录 1. 两数之和题目描述做题思路参考代码 49.字母异位词分组题目描述做题思路参考代码 128. 最长连续序列题目描述做题思路参考代码 1. 两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数…

子网掩码,网段,网关

IP地址、子网掩码、网段、网关【网络常识 2】_哔哩哔哩_bilibili 网关: 什么时候需要用到网关: 若目标IP在同一网段则可以直接通信不需要经过网关,否则需要。 怎么判断对方的ip是否与我在同一网段呢? 判断网络号是否相同。 电…

Android Studio 和 lombok 的版本适配、gradle依赖配置、插件安装及使用

文章目录 Intro注意事项Android Studio 和 lombok 的版本选择及下载下载链接 在 Android Studio 中安装一次 lombok 插件在每个 gradle 项目中添加 lombok 相关依赖(如要用到)使用ref Intro 用惯了 JavaMavenIDEA 开发后端服务,突然有一天用 JavaGradleAndroidStud…

【Flink】窗口实战:TUMBLE、HOP、SESSION

窗口实战:TUMBLE、HOP、SESSION 1.TUMBLE WINDOW1.1 语法1.2 标识函数1.3 模拟用例 2.HOP WINDOW2.1 语法2.2 标识函数2.3 模拟用例 3.SESSION WINDOW3.1 语法3.2 标识函数3.3 模拟用例 4.更多说明 在流式计算中,流通常是无穷无尽的,我们无法…

【PyQt】17.1-日历控件 不同风格的日期和时间、以及高级操作

日历控件puls版本 前言一、日历控件中不同风格的日期和时间1.1 代码1.2 注意事项格式设置m的大小写问题QTime和QDateTime的区别 1.3 运行结果 二、高级操作2.1 成倍调整2.2 下拉出日历2.3 事件函数2.4 获取设置的日期和时间 完整代码 前言 1、不同风格的日期和时间展示 2、高级…

Codeforces Round 930 (Div. 2)(A,B,C,D)

比赛链接 C是个交互,D是个前缀和加二分。D还是很难写的。 A. Shuffle Party 题意: 您将得到一个数组 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,an​ 。最初,每个 1 ≤ i ≤ n 1 \le i \le n 1≤i≤n 对应 a i i a_ii…

深度学习十大算法之长短时记忆网络(LSTM)

一、长短时记忆网络(LSTM)的基本概念 长短时记忆网络(LSTM)是一种特殊类型的循环神经网络(RNN),主要用于处理和预测序列数据的任务。LSTM由Hochreiter和Schmidhuber于1997年提出,其…

41-Vue-webpack基础

webpack基础 前言什么是webpackwebpack的基本使用指定webpack的entry和output 前言 本篇开始来学习下webpack的使用 什么是webpack webpack: 是前端项目工程化的具体解决方案。 主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览…

海康威视-AIOT的业务转型

海康威视的转型和定位为智能物联网(AIoT)解决方案和大数据服务的提供商。 公司不仅仅聚焦于其核心的视频监控业务,而且正在积极拓展到新的技术领域和市场。通过专注于物联感知、人工智能、大数据等技术的创新,对未来技术发展方向的…

golang import引用项目下其他文件内函数

初始化项目 go mod init [module名字] go mod init project 项目结构 go mod 文件 代码 需要暴露给外界使用的变量/函数名必须大写 在main.go中引入,当前项目模块名/要引用的包名 package mainimport (// 这里的路径开头为项目go.mod中的module"project/…

微信小程序----猜数字游戏.

目标:简单猜字游戏,系统随机生成一个数,玩家可以猜8次,8次未猜对,游戏结束;未到8次猜对,游戏结束。 思路和要求: 创建四个页面,“首页”,“开始游戏”&#…

hadoop基本概念

一、概念 Hadoop 是一个开源的分布式计算和存储框架。 Hadoop 使用 Java 开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统 (Hadoop DFS,HDFS) 和 MapReduce。 二、HDFS 命名节点 (NameNode) 命名节点 (NameNod…