释机器学习中的召回率、精确率、准确率

news2024/12/26 11:43:28

精确率和召回率又被叫做查准率和查全率,可以通过P-R图进行表示

如何理解P-R(精确率-召回率)曲线呢?或者说这些曲线是根据什么变化呢?

以逻辑回归举例,其输出值是0-1之间的数字。因此,如果我们想要判断用户的好坏,那么就必须定一个阈值。比如大于0.5指定为好用户,小于0.5指定为坏用户,然后就可以得到相应的精确率和召回率。但问题是,这个阈值是我们随便定义的,并不知道这个阈值是否符合我们的要求。因此为了寻找一个合适的阈值,我们就需要遍历0-1之间所有的阈值,而每个阈值都对应一个精确率和召回率,从而就能够得到上述曲线。

根据上述的P-R曲线,怎么判断最好的阈值点呢?首先我们先明确目标,我们希望精确率和召回率都很高,但实际上是矛盾的,上述两个指标是矛盾体,无法做到双高。因此,选择合适的阈值点,就需要根据实际问题需求,比如我们想要很高的精确率,就要牺牲掉一些召回率。想要得到很高的召回率,就要牺牲掉一些精准率。但通常情况下,我们可以根据他们之间的平衡点,定义一个新的指标:F1分数(F1-Score)。F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡。F1分数表达式为

上图P-R曲线中,平衡点就是F1值的分数。

准确率和召回率之间通常存在一定的折衷关系——当阈值较高时,分类器的准确率较高,但召回率较低;

当阈值较低时,分类器的召回率较高,但准确率较低

  • 召回率(灵敏度):对实际为正类的样本,模型能识别出多少是正类(灵敏度)
    分母:实际类别为正的样本个数(TP+FN=实际为正类的样本个数)
    分子:预测为正实际为正的样本个数(TP)
  • 精确率:对正类样本的预测准确程度,
    分母:预测为正的样本个数(TP+FP=正确预测+错误预测)
    分子:预测为正实际为正(TP)
  • 准确率:对所有类别的样本的预测准确程度,
    分母:所有类别样本个数=(预测为正样本个数+预测为负样本个数)
    分子:正确预测样本个数=(预测为正实际为正+预测为负实际为负)

召回率(把正样本叫唤回来,因为我们把本来是正的样本给否定了,提升它就是尽量不要把正确的搞错了,也就是不漏报),精准率就是看我们预测的正样本的到底有多少是真正的正样本,因为有一些负的我们把它判为正了,提升精准率就是不错报。

精确率:分母是预测到的正类,精确率的提出是让模型的现有预测结果尽可能不出错(宁愿漏检,也不能让现有的预测有错)

召回率:分母是原本的正类,召回率的提出是让模型预测到所有想被预测到的样本(就算多预测一些错的,也能接受)

召回率和精确率二者整体是呈负相关关系,局部可能正相关:

  • 当TP增加,召回率一定也增加(TP/实际为正样本数量不变)
  • 而对于精确率:TP增大,FP可能减小也可能增大(更容易增大)。TP增加,FP减小这是理想情况(低偏差),更符合实际情况的是TP增加FP也增加,即分母(TP+FP)更容易增大,精确率则更容易减小。当分子TP增加的部分没有分母增加的多时,精确率减小,
  • 反映到PR曲线上,召回率和精确率整体负相关,但局部可能正相关,例如分子TP增大1,分母(TP增大1+FP减小2)减小,精确率增大。
  • 总结一句话就是:TP增大,召回率一定增大,而精确率更容易减小

precision:focus在不出现错误的分类(宁可漏掉,不能出错)

recall:focus在分类不出现遗漏(宁可出错,不能漏掉)


 

假设你很穷,地主老爷送了一堆掺了沙子(N)的大米(P),现在要做饭了,需要将大米(P)跟沙子(N)进行分离,将掺了沙子(N)的大米(P)分成大米堆(P类)与沙子堆(N类),做饭用大米堆(P类),沙子堆(N类)则选择丢弃,以下有几个指标可以评估分离的好坏程度:

大米堆(P类)=TP+FP

沙子堆(N类)=TN+FN

1、准确率=(TP+TN)/(TP+FP+TN+FN)——全局预测准确性

能成功地(T)把大米(TP)放进大米堆(TP+FP),成功地(T)把沙子(TN)放进沙子堆(TN+FN),综合成功率是多少呢?这就是准确率的关注点,看全局的分类能力,不仅要把大米(TP)分对(T),还要把沙子(TN)也分对(T)。

2、精确率=TP/(TP+FP)——正分类里的预测准确性

准确率有个缺陷,要求太高了。比如你的目的就是煮饭,也就是说你更关注大米堆(TP+FP),你不需要操心沙子(TN)到底有没有被成功地(T)分类到沙子堆(TN+FN)。因此,只要大米堆(TP+FP)里的大米(TP)比例越多,那你做饭的时候,大概率吃到的还是大米(TP),而不是沙子(FN)。因此精确率就是看大米堆(TP+FP)里拥有的可食用大米(TP)比例,也可理解为将来做饭用的大米精度(浓度)。

3、召回率=TP/(TP+FN)——正样本的预测准确性

精确率关注的是吃饭时候,尽可能不要吃到沙子,所以他不关注粮食是否浪费的问题,而召回率关注的就是粮食浪费的问题,毕竟现在提倡节约,所以召回率就是关注大米(TP)样本中被成功地(T)分类到大米堆(P堆)的比例。“召回率”可以理解为,在所有大米(TP+FN)中回收实际食用的大米(TP)的比例。

与前面的P-R曲线类似,ROC曲线也是通过遍历所有阈值来绘制曲线的。如果我们不断的遍历所有阈值,预测的正样本和负样本是在不断变化的,相应的ROC曲线TPR和FPR也会沿着曲线滑动。

同时,我们也会思考,如何判断ROC曲线的好坏呢?我们来看,FPR表示模型虚报的程度,TPR表示模型预测覆盖的程度。理所当然的,我们希望虚报的越少越好,覆盖的越多越好。所以TPR越高,同时FPR越低,也就是ROC曲线越陡,那么模型的性能也就越好。

最后,我们来看一下,不论样本比例如何改变,ROC曲线都没有影响,也就是ROC曲线无视样本间的不平衡问题。

6.2 AUC

AUC(Area Under Curve)表示ROC中曲线下的面积,用于判断模型的优劣。如ROC曲线所示,连接对角线的面积刚好是0.5,对角线的含义也就是随机判断预测结果,正负样本覆盖应该都是50%。另外,ROC曲线越陡越好,所以理想值是1,即正方形。所以AUC的值一般是介于0.5和1之间的。AUC评判标准可参考如下

  • 0.5-0.7:效果较低。
  • 0.7-0.85:效果一般。
  • 0.85-0.95:效果很好。
  • 0.95-1:效果非常好。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 自绘进度条 QProgressBar使用

文章目录 效果图控件介绍绘制函数总结 效果图 控件介绍 QProgressBar是Qt框架中提供的一个控件,用于在界面上显示任务的进度。它通常用于向用户展示一个操作完成的百分比,比如文件复制、数据加载等操作的进度。 QProgressBar的主要特性: 范…

linux应用程序需要编写的脚本

每一个程序都按照下面的要求进行脚本编写 多个应用之间联合安装采用编写外围脚本,依次调用多个应用的脚本的方式实现

【elasticsearch】ES的JAVA工具类完整版(待完成...)

springboot 的 elasticsearch 版本: 7.15.2 前情提要: 1.首先要理解 elasticsearch 对于【数据类型】很严格,如果字段类型不规范,在 检索/排序/聚合 时候类型不正确就会出现报错或者查不到数据的问题。所以在一般String类型插入结构如下: 这样的结构,不仅可以支持分词查…

css 背景图片居中显示

background 简写 background: #ffffff url(https://profile-avatar.csdnimg.cn/b9abdd57de464582860bf8ade52373b6_misnice.jpg) center center / 100% no-repeat;效果如图:

ubuntu 卸载miniconda3

一开始安装路径错了,需要重新安一次,就一起记录了。 前提是这种方式安装: ubuntu安装miniconda3管理python版本-CSDN博客 删除Miniconda的安装目录 这目录就是你选择安装的时候指定的,如果记不得了,可以这样查看 which conda 这…

docker拉取镜像失败的解决方案大全

更换国内源 创建或修改 /etc/docker/daemon.json 文件,修改: {"registry-mirrors" : ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https:…

【生态适配】亚信安慧AntDB数据库与OpenCloudOS、TencentOS Server五款产品完成兼容互认

日前,亚信安慧AntDB数据库与OpenCloudOS8、OpenCloudOS9、TencentOS Server 2、TencentOS Server 3、TencentOS Server 4五款操作系统完成兼容互认。经过严格测试,亚信安慧AntDB数据库与这五款操作系统兼容良好,整体运行稳定。 图1&#xff1…

全面认识计算机

目录 一、计算机的发展史 1. 电子管计算机时代 2. 晶体管计算机时代 3. 小、中规模集成电路计算机时代 4. 大、超大规模集成电路计算机时代 二、计算机硬件组成 1. 输入设备 2. 输出设备 3. 存储器 4. 运算器 5. 控制器 三、计算机硬件间的连接 四、计算机系统的结…

0201安装报错-hbase-大数据学习

1 基础环境简介 linux系统:centos,前置安装:jdk、hadoop、zookeeper,版本如下 软件版本描述centos7linux系统发行版jdk1.8java开发工具集hadoop2.10.0大数据生态基础组件zookeeper3.5.7分布式应用程序协调服务hbase2.4.11分布式…

Pytorch学习 day07(神经网络基本骨架的搭建、2D卷积操作、2D卷积层)

神经网络基本骨架的搭建 Module:给所有的神经网络提供一个基本的骨架,所有神经网络都需要继承Module,并定义_ _ init _ _方法、 forward() 方法在_ _ init _ _方法中定义,卷积层的具体变换,在forward() 方法中定义&am…

Java设计模式:适配器模式的三种形式(五)

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 适配器模式用于将一个类的接口转换为客户端所期望的另一个接口,以实现不兼容接口之间的协作。它像电器插头转换器一样…

单调栈(例题+解析)

1、应用场景 找出一个数的左面离概述最近的且小于该数的数&#xff08;同理右面也可以&#xff09; 例如&#xff1a; 数组a[i] 3 4 2 7 5 答案&#xff1a; -1 3 -1 2 2 2、如何实现找到规律 暴力写法&#xff1a; for(int i0;i<n;i) {for(int ji-1;j>0;j--){i…

金融数据采集与风险管理:Open-Spider工具的应用与实践

一、项目介绍 在当今快速发展的金融行业中&#xff0c;新的金融产品和服务层出不穷&#xff0c;为银行业务带来了巨大的机遇和挑战。为了帮助银行员工更好地应对这些挑战&#xff0c;我们曾成功实施了一个创新的项目&#xff0c;该项目采用了先进的爬虫技术&#xff0c;通过ope…

苍穹外卖学习-----2024/03/08

1.新增菜品 工具类AliOssUtil .java Data AllArgsConstructor Slf4j public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** param bytes* param objectName* return*/pub…

STM32day3

1.思维导图 1.总结任务的调度算法&#xff0c;把实现代码再写一下 /* Definitions for myTask02 */ osThreadId_t myTask02Handle; uint32_t myTask02Buffer[ 64 ]; osStaticThreadDef_t myTask02ControlBlock; const osThreadAttr_t myTask02_attributes {.name "myTa…

PostgreSQL容器安装

docker中的centos7中安装 选择对应的版本然后在容器中的centos7中执行下面命令 但是启动容器的时候需要注意 开启端口映射开启特权模式启动init进程 docker run -itd --name centos-postgresql -p 5433:5432 --privilegedtrue centos:centos7 /usr/sbin/init 启动然后进入后先…

Mysql的Cardinality值

什么是Cardinality值&#xff1f; Cardinality值是Mysql做索引优化时一个非常关键的值&#xff0c;优化器会根据这个值来判断是否使用这个索引&#xff0c;它表示索引中唯一值的数目估计值&#xff0c;该值应该尽可能接近1&#xff0c;如果非常小&#xff0c;则用户需要考虑是否…

Clickhouse表引擎介绍

作者&#xff1a;俊达 1 引擎分类 ClickHouse表引擎一共分为四个系列&#xff0c;分别是Log、MergeTree、Integration、Special。其中包含了两种特殊的表引擎Replicated、Distributed&#xff0c;功能上与其他表引擎正交&#xff0c;根据场景组合使用。 2 Log系列 Log系列…

运维知识点-Apache HTTP Server

Apache 介绍 介绍 Apache是一个开源的Web服务器软件&#xff0c;全称为Apache HTTP Server&#xff0c;由Apache软件基金会开发和维护。它是目前全球使用最广泛的Web服务器软件之一&#xff0c;占全球所有网络服务器的很大比例。Apache服务器具有跨平台的特性&#xff0c;可以…

ChatGPT Plus 支付出现「您的银行卡被拒绝/your card has been declined」怎么办?

ChatGPT Plus 支付出现「您的银行卡被拒绝/your card has been declined」怎么办&#xff1f; 在订阅 ChatGPT Plus 或者 OpenAI API 时&#xff0c;有时候会出现已下报错 &#xff1a; Your card has been declined. 您的银行卡被拒绝 出现这种错误&#xff0c;有以下几个解…