机器学习中常用的性能度量—— ROC 和 AUC

决策树——过/欠拟合 本文的数据集和上一篇一样,是美国个人收入信息。Using Decision Trees With Scikit-Learnscikit-learn中实现了 DecisionTreeClassifier分类算法以及DecisionTreeRegressor回归算法。from sklearn.tree import DecisionTreeClassifier# A list of columns to 阅读详情

什么是泛化能力?

通常我们用泛化能力来评判一个模型的好坏,通俗的说,泛化能力是指一个机器学期算法对新样本(即模型没有见过的样本)的举一反三的能力,也就是学以致用的能力。

举个例子,高三的学生在高考前大量的刷各种习题,像五年高考三年模拟、三年高考五年模拟之类的,目的就是为了在高考时拿到一个好的分数,高考的题目就是新题,一般谁也没做过,平时的刷题就是为了掌握试题的规律,能够举一反三、学以致用,这样面对新的题目也能从容应对。这种规律的掌握便是泛化能力,有的同学很聪明,考上名校,很大程度上是该同学的泛化能力好。

在机器学习中,对于分类和回归两类监督学习,分别有各自的评判标准,这里我们讨论常用于分类任务的性能度量标准——AUC 和 ROC。


几个重要概念:混淆矩阵、准确率、精准率和召回率

1. 混淆矩阵

假设我们建立的是二分类模型,将实际类别和预测类别进行两两组合,就形成了混淆矩阵。

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

接下来的性能度量指标都是由混淆矩阵的各个元素计算得来。

2. 准确率

准确率=TP+TNTP+TN+FP+FN准确率=\frac{TP+TN}{TP+TN+FP+FN}准确率=TP+TN+FP+FNTP+TN​

在样本均衡的情况下,准确率是一个适用的性能度量指标,但是,在样本不平衡的情况下,并不能很好的衡量结果。例如,在信用风险评估中,正样本为 90%,负样本(发生违约的样本)为 10%,样本严重失衡,在这种情况下,即使我们全部将样本预测为正样本,正确率也会达到 90%的高准确率。这也说明了,在样本失衡相对严重的情况下,即使准确率很高,结果也会有很大的水份,准确率指标会失效。

3. 查准率

查准率(Precision)又叫精准率,是指在所有被预测为正的样本中实际为正的样本的概率,即在预测为正的样本中,我们有多少把握可以预测正确:

查准率=TPTP+FP查准率=\frac{TP}{TP+FP}查准率=TP+FPTP​

查准率和准确率的区别在于:查准率代表对正样本结果中的预测精度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

4. 召回率

召回率(Recall)又叫查全率,指在实际为正的样本中被预测为正样本的概率。应用场景:在网贷信用风险评估中,相对好用户,我们更关心坏用户,不能错放任何一个坏用户,因为如果我们过多的将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,造成严重亏损。召回率越高,表示实际坏用户被预测出来的概率越高,即“宁可错杀一千,绝不放过一个。”

精准率=TP/(TP+FN)精准率=TP/(TP+FN)精准率=TP/(TP+FN)

一般来说,查准率和召回率是一对矛盾的度量。查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
例如,若希望将好瓜尽可能多地选出来,则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比率尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低,通常只有在一些简单的任务中,才可能使查全率和查准率都很高。

如果想要在两者之间找到一个平衡点,通常会使用 F1 分数,它同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。

F1=2×查准率×召回率(查准率+召回率)F1=\frac{2 \times 查准率 \times 召回率}{(查准率+召回率)}F1=(查准率+召回率)2×查准率×召回率​


ROC和AUC

1. 真正率和假正率

ROC 和 AUC 可以在无视样本不平衡的情况下进行性能度量,关键在于两个指标:真正率(TPR)和假正率(FPR),其中真正率也叫灵敏度(Sensitivity),假正率则为 1-特异度(Specifucity)。

真正率(TPR)=灵敏度=TPTP+FN真正率(TPR)=灵敏度=\frac{TP}{TP+FN}真正率(TPR)=灵敏度=TP+FNTP​
假正率(FRP)=1−特异度=FPFP+TN假正率(FRP)=1-特异度=\frac{FP}{FP+TN}假正率(FRP)=1−特异度=FP+TNFP​

可以发现 TPR 和 FPR 分别是基于真实情况 1 和 0 出发的,即分别在真实情况下的正样本和负样本中来观察相关概率问题,正因为如此,所以无论样本是否平衡,都不会被影响。在之前的信用评估例子中,90% 为正样本,10% 为负样本,我们知道用准确率衡量结果是有水份的,但是用 TPR 和 FPR 不一样,这里,TPR 只关注 90% 正样本中有多少是真正被覆盖的,而与剩余 10% 无关,同理,FPR 只关注 10% 负样本中有多少是被错误覆盖的,也与其他 90% 毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用 TPR 和 FPR 作为 ROC/AUC 指标的原因。

2. ROC-接受者操作特征曲线

ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线,最早应用于雷达信号检测领域,用于区分信号和噪声。后来人们将其用于评价模型的预测能力,ROC 曲线是基于混淆矩阵得出的。

ROC曲线中横坐标为假正率(FPR),纵坐标为真正率(TPR),是通过遍历所有阈值来绘制整条曲线的,当我们不断的遍历所有阈值,预测的正样本和负样本是不断变化,相应的在 ROC 曲线图中就会沿着曲线滑动。

在这里插入图片描述

改变阈值只是不断的改变正负样本数,即 TPR 和 FPR,但是曲线本身是不会改变的。那如何通过 ROC 来判断一个模型的好坏呢?我们知道 FRP 表示模型虚报的响应程度,TPR 表示模型预测响应的覆盖程度,一个好的模型虚报的越少越好,覆盖的越多越好,这就等价于 TPR 越高,同时 FPR 越低,即 ROC 曲线越陡时,模型的性能就越好。

在这里插入图片描述

之前已经讨论了 ROC 曲线为什么可以无视样本的不平衡,这里通过动图进行演示,可以发现:无论红蓝样本比率如何改变,ROC 曲线都没有影响。

在这里插入图片描述

3. AUC-曲线下面积

AUC 是一种基于排序的高效算法,取值越大,代表模型的预测效果越好,其一般判断标准为:

  • 0.5~0.7:效果较低;
  • 0.7~0.85:效果一般
  • 0.85~0.95:效果很好
  • 0.95~1:效果非常好,但很可能是过拟合导致的

sklean 的 metrics 对 ROC 和 AUC 的计算进行了实现。

人工智能/机器学习基础知识——性能度量(Precision、Recall、F1、ROC、AUC) 阅读详情

相关推荐

如何使用R语言计算训练集和测试集的AUC值以确认模型是否过拟合

在上面的代码中,我们假设训练集的真实标签为train_labels,训练集的预测概率为train_probs;通过比较训练集和测试集的AUC值,我们可以判断模型是否过拟合。如果训练集的AUC值较高,而测试集的AUC值较低,那么模型可能存在过拟合问题。过拟合是机器学习中常见的问题之一,它指的是模型过于复杂,过度拟合了训练数据,从而导致在未见过的测试数据上表现不佳。综上所述,我们可以使用R语言中的’sigr’包来计算训练集和测试集的AUC值,并通过比较这两个值来判断模型是否过拟合。

CyberBladeX的博客 1134

带你真正吃透AUC

本文旨在从所有教科书都讲到的AUC基本概念为起点,逐步带领大家进入AUC背后更为广阔、神奇的世界。 一、什么是AUC    AUC的全称为Area Under the Curve,即曲线下的面积。这里的曲线指的是什么曲线?有两种类型:ROC曲线和PR曲线。所以,AUC也会有两种类型:ROCAUC及PRAUC,分别对应ROC曲线下的面积以及PR曲线的的面积。 二、ROC曲线及PR曲线    在二分类问题中,模型输出得分SSS后(这里的得分指的是属于正例的概率值,即经过sigmoid函数归一化到[0,1]内.

天渡漫谈 1万+

机器学习:性能度量篇-Python利用鸢尾花数据绘制ROC和AUC曲线

文章目录 前言 一、ROC与AUC 1.ROC 2.AUC 二、代码实现 总结 前言 内容接上一篇https://blog.youkuaiyun.com/master_hunter/article/details/108763729 上篇文章提到的这篇文章不做过多叙述。 提示:以下是本篇文章正文内容,下面案例可供参考 一、ROC与AUC 很多学习器是为了测试样本产生的一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类...

master_hunter的博客 5449

[sklearn]性能度量之AUC值

[sklearn]性能度量之AUC值 (from sklearn.metrics import roc_auc_curve) 1.AUC AUC(Area Under ROC Curve),即ROC曲线下面积。 2.AUC意义 若学习器A的ROC曲线被学习器B的ROC曲线包围,则学习器B的性能优于学习器A的性能;若学习器A的ROC曲线和学习器B的ROC曲线交叉,则比较二者ROC曲线下的面积大小,即...

Kyrie_Irving的博客 2296

接入 deepseek 实现AI智能问诊

必须包含user角色,用于传递用户输入。system角色可选,用于设置对话背景。多轮对话需要将历史记录添加到messages中。

weixin_51326478的博客 6541

基于docker进行安装部署seata,解决Seata的版本与Nacos的版本不匹配

本文分享了在Docker环境下部署Seata时遇到Nacos 3.x API不兼容问题的解决方案。由于Seata 2.0.0内置的nacos-client 1.4.2无法调用Nacos 3.x重构后的接口,导致注册失败。通过下载Seata 2.6.0源码自行构建Docker镜像,并调整启动方式(直接执行Java命令绕过Shell脚本),最终成功实现与Nacos 3.x的集成。关键步骤包括:创建自定义Dockerfile、配置application.yml、处理启动脚本兼容性问题,最终采用java直接运行方案

Dd52698的博客 407

过拟合与欠拟合

1. 原因 训练误差持续降低,测试误差却可能上升。 2.解决方案 2.1 早停(early stopping) 将数据分成训练集和验证集,训练集用来计算梯度、更新连接权重和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权重和阈值。 2.2 正则化(regularization) 在损失函数中增加一个用于描述模型复杂度的部分,如权重与阈值的平方和。 ...

MusicDancing的博客 1292

骨架动作识别新突破:CTR-GCN的通道拓扑优化策略解析

本文深入解析了CTR-GCN在骨架动作识别中的通道拓扑优化策略。通过引入通道级拓扑细化,CTR-GCN克服了传统GCN共享拓扑结构的局限性,显著提升了动作识别的准确率。文章详细介绍了CTR-GCN的三大核心组件设计,包括特征变换模块、通道拓扑建模和通道聚合技术,并提供了实战调参经验和模型压缩技巧,为计算机视觉领域的研究者和开发者提供了有价值的参考。

weixin_27310417的博客 193

机器学习的模型性能度量:评估指标PR对比ROC/AUC

  一般,对学习器的泛化性能进行评估,需要有能衡量模型泛化性能的评价标准,即性能度量(performance measure)。性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果,并通过这个指标来进一步调参逐步优化我们的模型。 分类常用的性能度量混淆矩阵精准率和召回率ROC/AUC 混淆矩阵   对于二分类的模型,可以把预测情况与实际情况的所有结果两两组合,结果就会出现以下4种情况,就组成了分类结果的混淆矩阵(confusion matrix):   令TP、FP

迷路的咸鱼的博客 3848

数学:箭头符号→(to)都表示什么意义?

数学符号“→”在不同领域有不同含义:在逻辑中表示“蕴含”(p→q);在函数中表示映射关系(f:A→B);在极限中表示变量趋近(x→a);在推导过程中表示推理方向(A→B)。此外,它也可能用于向量表示或数列趋势。其具体含义需结合上下文判断,核心应用场景包括逻辑运算、函数定义、极限分析和数学推导等。

shunzi2016的博客 5569

环保 HJ212协议解析

由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。 图4 通讯协议的数据结构 6.1.1通讯包结构组成 名称 类型 长度

ccf19881030的专栏 2万+

机器学习之性能度量指标——决定系数R^2、PR曲线、ROC曲线、AUC值、以及准确率、查全率、召回率、f1_score

一、线性回归的决定系数(也称为判定系数,拟合优度) 相关系数是R哈~~~就是决定系数的开方! 正如题所说决定系数是来衡量回归的好坏,换句话说就是回归拟合的曲线它的拟合优度!也就是得分啦~~ 决定系数它是表征回归方程在多大程度上解释了因变量的变化,或者说方程对观测值的拟合程度如何。 计算公式为: 决定系数越大表拟合优度越好! Python中可直接调用score()方法来计算决定系数值...

weixin_42180810的博客 2万+

❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)

文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python 变量1.变量定义理解2. 变量名命名3. 分

全栈川川 26万+

机器学习笔记十五:分类问题的性能度量(混淆矩阵,正确率,召回率,ROC,AUC)

分类问题的性能度量

谢小小XH 1万+

让 ME51N 在采购信息记录过期时不要带出上一次采购订单的价格

在采购信息记录(PIR)价格条件无效或过期时,到上一次采购订单价格进行提议;你可以通过关闭,并在把PO price设置为不采纳,再辅以把过期的价格来源直接拦截为错误。若仍需 100% 阻断,可用在保存前清空估价价格作为技术兜底。标准行为与配置证据见文内引用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 661

基于Simulink的四足机器人关节力矩优化仿真建模示例

高自由度:每个腿至少有3个自由度(DOF),增加了控制的复杂性。非线性动力学:涉及多体系统的相互作用,包括接触力、摩擦力等。能量消耗:减少不必要的能量消耗是提升续航能力和效率的关键。可以是最小化能量消耗或最大化稳定性等。matlab深色版本% 示例代码通过本指南,我们介绍了如何基于Simulink搭建一个四足机器人的关节力矩优化模型,并进行了仿真以验证其基本功能。

amy_mhd的博客 171

机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

qq_44168134的博客 168

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【机器学习-西瓜书】二、性能度量:召回率;P-R曲线;F1值;ROC;AUC

博文转自:https://blog.youkuaiyun.com/u011995719/article/details/77481896 感谢博主~ 关键词:准确率(查准率,precision);召回率(查全率,recall);P-R曲线,平衡点(Break-Even Point, BEP);F1值,F值;ROC(Receiver Operating Characteristic,受试者工作特征);AUC(A...

律己且好学,才能保证不坠入愤世嫉俗之列。 483

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

机器学习性能度量指标(precision、recall、PR曲线、F1、ROC、AUC、IOU、mAP)

1、precision、recall、PR curve、F1 在信息检索等任务中,我们经常会关心“检索出的信息中有多少比例是用户感兴趣的”以及“用户感兴趣的信息中有多少被检索出来了”。precision(查准率)与recall(查全率)就是此类需求的性能度量指标。 对于一个二分类问题,我们可以根据模型的分类结果将其分为四类:TP、FP、TN、FN 则查准率与查全率的定义分别为: precisio...

xhj_enen的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

sklearn分类任务性能度量——以MNIST为例的精度、查准率、查全率、F1、ROC、AUC

精度、查准率、查全率、F1、ROC、AUC

XerCis的博客 3842

【机器学习】分类性能度量指标 : ROC曲线、AUC值、正确率、召回率、敏感度、特异度

本文转自 http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/ 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更

自由 平等~忠诚 奉献 7万+

机器学习 | 分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

本篇博客的图源来自 zhwhong,转载仅作学习使用! 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。 比如有这样一个在房子周围可能发现的动物类型的预测,这个...

橘嘉禾 439
上一篇: Flask 之 SQLAlchemy
下一篇: 时间序列之趋势
沉住气CD
博客等级 码龄9年 547粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值