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

Recall(召回率)和 Precision(精确率) 的区别和F1分数

Recall与Precision 的区别

一 、概念

Recall(召回率)和 Precision(精确率)是信息检索、数据挖掘以及机器学习等领域中评估模型或算法性能的两个重要指标,特别是在分类问题中。

  1. Precision(精确率)

    • 定义:Precision 是指预测为正类的样本中有多少是真正正确的。它关注的是结果的质量。
    • 计算公式: P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP + FP} Precision=TP+FPTP
      其中,TP (True Positives) 表示实际为正类且被正确预测为正类的数量;FP (False Positives) 表示实际为负类但被错误地预测为正类的数量。
    • 说明:高 Precision 表示在所有被预测为正类的样本中,大多数确实属于正类,即假正例较少。
  2. Recall(召回率)

    • 定义:Recall 是指所有实际为正类的样本中有多少被正确找出来了。它关注的是结果的完整性。
    • 计算公式: R e c a l l = T P T P + F N Recall = \frac{TP}{TP + FN} Recall=TP+FNTP
      其中,FN (False Negatives) 表示实际为正类但被错误地预测为负类的数量。
    • 说明:高 Recall 表示在所有实际为正类的样本中,大部分都被正确预测了,即假负例较少。

简而言之,Precision 关注的是“准确性”,即你所选择的内容中有多少是对的;而 Recall 关注的是“覆盖范围”,即所有正确的选项中有多少被你选中了。在实际应用中,可能需要根据具体需求来平衡这两者,因为有时候提高其中一个可能会导致另一个下降。例如,在一些应用场景下,可能更倾向于减少漏报(提高 Recall),而在其他场景下则可能更注重降低误报(提高 Precision)。

二 、举例说明

为了更好地理解 Recall(召回率)和 Precision(精确率),我们可以通过一个具体的例子来说明。

假设我们有一个二分类问题,目标是识别一组电子邮件中哪些是垃圾邮件(Spam)。在这个场景下,我们将实际的垃圾邮件标记为正类(Positive),非垃圾邮件标记为负类(Negative)。

考虑以下情况:

  • 总共有 20 封垃圾邮件(真实 Positive)。
  • 总共有 80 封非垃圾邮件(真实 Negative)。
  • 我们的算法预测了 15 封邮件为垃圾邮件(Predicted Positive),其中正确识别了 10 封真正的垃圾邮件(True Positives, TP)。
  • 在这 15 封被预测为垃圾邮件的邮件中,有 5 封实际上是正常邮件(False Positives, FP)。
  • 因此,还有 10 封垃圾邮件没有被正确识别(False Negatives, FN),它们被错误地标记为非垃圾邮件。

根据这些信息,我们可以计算出:

  • Precision(精确率)

P r e c i s i o n = T P T P + F P = 10 10 + 5 = 10 15 = 0.67 Precision = \frac{TP}{TP + FP} = \frac{10}{10 + 5} = \frac{10}{15} = 0.67 Precision=TP+FPTP=10+510=1510=0.67

这意味着在所有被预测为垃圾邮件的邮件中,有 67% 是真正意义上的垃圾邮件。

  • Recall(召回率)
    R e c a l l = T P T P + F N = 10 10 + 10 = 10 20 = 0.5 Recall = \frac{TP}{TP + FN} = \frac{10}{10 + 10} = \frac{10}{20} = 0.5 Recall=TP+FNTP=10+1010=2010=0.5

这意味着在所有的垃圾邮件中,只有 50% 被我们的算法正确地识别出来了。

解释

  • Precision 高 意味着当你告诉用户某封邮件是垃圾邮件时,你有很大的把握确定它确实是垃圾邮件。但是,在这个案例中,由于 Recall 只有 0.5,意味着有一半的垃圾邮件未被发现,可能会让用户错过重要的过滤。

  • Recall 高 意味着几乎所有的垃圾邮件都能被捕捉到,但同时可能也会误判一些正常的邮件为垃圾邮件(如上述例子中的 FP),导致 Precision 下降。

因此,选择优化的方向取决于具体的应用需求。如果你不希望错过任何垃圾邮件,你会倾向于提高 Recall;如果你更在意减少对正常邮件的误报,则会努力提高 Precision。在实践中,通常需要在这两者之间找到一个平衡点。

F1 分数

基于前面给出的例子,我们可以进一步计算出F1分数来综合评估模型的性能。在这个例子中,我们已经知道了精确率(Precision)和召回率(Recall)的值:

  • Precision(精确率) = 0.67
  • Recall(召回率) = 0.5

现在,我们可以使用这些值来计算F1分数。

F1 分数的计算公式

F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} F1=2Precision+RecallPrecisionRecall

将已知的Precision和Recall代入公式中:

F 1 = 2 ⋅ 0.67 ⋅ 0.5 0.67 + 0.5 = 2 ⋅ 0.335 1.17 ≈ 0.572 F1 = 2 \cdot \frac{0.67 \cdot 0.5}{0.67 + 0.5}= 2 \cdot \frac{0.335}{1.17}≈ 0.572 F1=20.67+0.50.670.5=21.170.3350.572

因此,在这个特定的情况下,F1分数约为0.572。

解释
  • F1 分数 = 0.572 表明模型在精确率和召回率之间达到了一个平衡点。虽然这个数值不是特别高,但它反映了模型在这两个指标上的表现。

  • 在我们的垃圾邮件识别场景中,这意味着:

    • 我们有大约67%的概率正确地识别一封真正的垃圾邮件(精确率)。
    • 我们的算法成功捕捉到了所有垃圾邮件中的50%(召回率)。
    • F1分数提供了一个单一的度量标准,用于表示这两种性能之间的平衡。在这个例子中,F1分数为0.572,表明该模型在减少误报和捕捉尽可能多的垃圾邮件之间取得了一定程度的平衡,但仍有改进的空间。

通过调整模型或算法参数,我们可以尝试优化Precision和Recall,以期获得更高的F1分数,从而在减少误报的同时提高对正类样本的捕捉能力。这通常需要根据具体应用场景的需求来权衡。例如,在垃圾邮件检测中,如果错过垃圾邮件的成本较高,你可能会倾向于提高召回率;而如果你更关注减少对正常邮件的误判,则应努力提高精确率。F1分数帮助我们在两者之间找到一个合适的平衡点。

相关文章:

Recall(召回率)和 Precision(精确率) 的区别和F1分数

Recall与Precision 的区别 一 、概念 Recall(召回率)和 Precision(精确率)是信息检索、数据挖掘以及机器学习等领域中评估模型或算法性能的两个重要指标,特别是在分类问题中。 Precision(精确率&#xff…...

智能选路+NAT实验 作业

拓扑图 配置ip 防火墙安全区域划分 用户配置 dns透明...

Vue 项目登录的基本流程

Vue 用户登录的基本流程包括以下6个步骤&#xff1a; 步骤&#xff1a; 1. 创建登录表单 在前端&#xff0c;首先要创建一个登录表单&#xff0c;用户输入账号&#xff08;用户名、邮箱、手机号等&#xff09;和密码。 示例&#xff1a;Login.vue <template><div…...

LLM:RAG

原文链接&#xff1a;LLM&#xff1a;RAG 1、RAG 概览 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种结合了信息检索&#xff08;IR&#xff09;和 LLM 的技术。它的核心思想是在 LLM 生成回答之前&#xff0c;通过检索相关文档…...

基于Qt 和微信小程序的用户管理系统:WebSocket + SQLite 实现注册与登录

目录 一. 概要 二. 技术栈 三. 系统功能设计 3.1 功能模块 3.2 数据表设计 四. 具体实现 4.1 Qt 服务端 4.1.1 初始化 WebSocket 服务器 4.1.2 用户管理界面 4.2 微信小程序端 4.2.1 注册功能 4.2.2 登录功能 五. 运行效果 六. 源码下载 一. 概要 在物联网和智能设备…...

43.日常算法

1.LCR 142. 训练计划 IV 题目来源 给定两个以 有序链表 形式记录的训练计划 l1、l2&#xff0c;分别记录了两套核心肌群训练项目编号&#xff0c;请合并这两个训练计划&#xff0c;按训练项目编号 升序 记录于链表并返回。 注意&#xff1a;新链表是通过拼接给定的两个链表的…...

策略+适配器模式详解

文章目录 1.策略模式1.目录结构2.Strategy.java 策略接口3.StrategyA.java 策略A4.StrategyB.java 策略B5.StrategyC.java 策略C6.Context.java 策略上下文7.Client.java 客户端8.小结 2.适配器模式1.目录结构2.CustomPaymentProcessor.java 自己的支付接口3.PayPalPaymentServ…...

2024年职高单招或高考计算机类投档线

问题&#xff1a; 这些学校2024年职高单招或高考计算机类投档线分别是多少 回答&#xff1a; 部分学校2024年职高单招或高考计算机类投档线如下&#xff1a; 湖南工业职业技术学院 职高单招&#xff1a;未查询到2024年职高单招计算机类专业明确的录取分数线信息。但在2024年…...

Salesforce 检索Layout的设定

做了许多Object&#xff0c;却想不起来怎么设置我的Listview的项目了。 問題&#xff1a; salesforce 最近参照したオブジェクト 表示項目を変更したいですが、「検索レイアウト」の選択メニューが該当オブジェクトのオブジェクトマネージャーから出てないです。 解決方法&am…...

未来游戏:当人工智能重构虚拟世界的底层逻辑

未来游戏&#xff1a;当人工智能重构虚拟世界的底层逻辑 在《赛博朋克2077》夜之城的霓虹灯下&#xff0c;玩家或许已经注意到酒吧里NPC开始出现微表情变化&#xff1b;在《艾尔登法环》的开放世界中&#xff0c;敌人的战术包抄逐渐显露出类人智慧。这些细节预示着游戏产业正站…...

Zabbix——Rocky9安装zabbix相关步骤记录

安装Zabbix 安装MariaDB 这里用MariaDB演示 https://mariadb.org/download/?trepo-config&dRedHatEnterpriseLinux9&v10.11&r_mneusoft 通过这个网址获得连接 选择对应的repo 根据系统版本和要安装的版本选择对应的repo 安装 新建一个repo文件&#xff0c;例…...

SECS/GEM300应用案例参考

GEM300 是一种用于半导体制造领域的通信协议标准&#xff0c;主要用于支持 300mm 晶圆制造的自动化生产。以下是 GEM300 的一些具体应用案例&#xff1a; 1. 半导体设备集成 设备制造商的应用&#xff1a;广州金南瓜科技有限公司通过 GEM300 SDK&#xff0c;帮助国内多个半导体…...

startai产品精修教程

1.把产品放置ps画布中 打开startai插件选择产品精修功能&#xff0c;选择金属材质即可哦 调节一下参数就可以啦&#xff0c;最终效果图 下载地址&#xff1a;StartAI画图软件官网_PS插件StartAI绘画软件生成器_Photoshop图像处理插件...

【YOLOv8】

文章目录 1、yolov8 介绍2、创新点3、模型结构设计3.1、backbone3.2、head 4、正负样本匹配策略5、Loss6、Data Augmentation7、训练、推理8、分割 Demo附录——V1~V8附录——相关应用参考 1、yolov8 介绍 YOLOv8 是 ultralytics 公司在 2023 年 1 月 10 号开源的 YOLOv5 的下…...

【保姆级教程】DeepSeek R1+RAG,基于开源三件套10分钟构建本地AI知识库

一、总体方案 目前在使用 DeepSeek 在线环境时&#xff0c;页面经常显示“服务器繁忙&#xff0c;请稍后再试”&#xff0c;以 DeepSeek R1 现在的火爆程度&#xff0c;这个状况可能还会持续一段时间&#xff0c;所以这里给大家提供了 DeepSeek R1 RAG 的本地部署方案。最后实现…...

Oracle视图(基本使用)

视图 视图是通过定制的方式显示一个或者多个表的数据。 视图可以视为“虚拟表”或“存储的查询”。 视图的优点&#xff1a; 提供了另外一种级别的表安全性隐藏了数据的复杂性简化了用户的SQL命令隔离基表结构的改变通过重命名列&#xff0c;从另一个角度提供数据。 视图里…...

梁文锋亲自挂名DeepSeek发布新论文

由 DeepSeek 联合创始人梁文锋亲自挂名的研究团队&#xff0c;在 arXiv 上发表了一篇题为“Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention”的论文&#xff0c;提出了一种全新的注意力机制架构 NSA&#xff08;Native Sparse Attention&…...

低代码(Low Code)全解析:从概念到应用,从选择到价值

​在数字化浪潮席卷全球的当下&#xff0c;企业对软件开发的效率与灵活性愈发重视&#xff0c;低代码平台应运而生并迅速掀起技术热潮。 本文基于笔者 6 年的低代码实践经验&#xff0c;深入剖析低代码的诸多方面&#xff0c;涵盖其定义、发展历程、国内平台对比、开发流程、与…...

C++--STL库-List

目录 1.list 的基本使用 1.1 创建和初始化 1.2. 插入元素 1.3. 删除元素 1.4. 访问元素 1.5 遍历 1.6 总结 list是C标准库&#xff08;STL&#xff09;中的双向链表容器&#xff0c;属于<list>头文件。 它的特点是&#xff1a; 动态大小&#xff1a;可以随时插入…...

尚硅谷 java 学习Day19 抽象类与抽象方法、接口、内部类

6-5 抽象类(abstract)与抽象方法&#xff08;important&#xff09; 一、什么叫抽象类&#xff1a; 有时候将一个父类设计的非常抽象&#xff0c;以至于它没有具体的实例&#xff0c;这样的类称为抽象类 abstract关键字的使用&#xff1a; ​ 1、abstract:抽象的 ​ 2、abs…...

HomeAssistant 发现MQTT设备(温度,湿度,开关)

要通过 MQTT 将温度、湿度数据以及一个灯的开关状态传输到 Home Assistant 并实现设备自动发现&#xff0c;可以按照以下步骤操作&#xff1a; 1.前期准备工作 安装MQTT服务器(EMQX)配置好(可以在HA加载项中安装,也可以在NAS上Docker安装) HA的集成中安装MQTT,并且连接上(EM…...

本地DeepSeek模型GGUF文件转换为PyTorch格式

接前文,我们在本地Windows系统上,基于GGUF文件部署了DeepSeek模型(DeepSeek-R1-Distill-Qwen-1.5B.gguf版本),但是GGUF是已经量化的版本,我们除了对其进行微调之外,无法对其训练,那么还有没有其他办法对本地的GGUF部署的DeepSeek模型进行训练呢?今天我们就反其道而行之…...

手写数字识别的神经网络 2层神经网络的类 代码详解

源代码和图解来自鱼书 目录 2层神经网络的类 源代码&#xff1a; 详解&#xff1a; 1. 类的初始化 (__init__) 2. 前向传播 (predict) 3. 损失函数 (loss) 4. 准确率计算 (accuracy) 5. 数值梯度计算 (numerical_gradient) 6. 反向传播计算梯度 (gradient) 总结&#…...

【项目】基于STM32F103C8T6的四足爬行机器人设计与实现(源码工程)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【项目】基于STM32F103C8T6的四足爬行机器人设计与…...

[代码调试]安装Text2Image(stable diffusion)模型环境的踩坑记录

文章目录 一、xFormers版本问题1、先确认下自己torch版本所对应的cuda版本2.安装对应版本(1) 到对应官网下载包本地安装(2)代码安装 二、attn_mask尺寸错误三、diffusers四、Huggingface 配置基于stable diffusion预训练模型的环境&#xff0c;记录踩坑记录 一、xFormers版本问…...

使用DeepSeek+本地知识库,尝试从0到1搭建高度定制化工作流(自动化篇)

7.5. 配图生成 目的&#xff1a;由于小红书发布文章要求图文格式&#xff0c;因此在生成文案的基础上&#xff0c;我们还需要生成图文搭配文案进行发布。 原实现思路&#xff1a; 起初我打算使用deepseek的文生图模型Janus进行本地部署生成&#xff0c;参考博客&#xff1a;De…...

理解三种哈希算法:MD5、CRC、SHA256

0、背景 哈希算法是一类重要的算法&#xff0c;用于将任意长度的数据映射为固定长度的哈希值。哈希算法广泛应用于数据完整性校验、密码学、数字签名等领域。本文将详细介绍三种常见的哈希算法&#xff1a;MD5、CRC 和 SHA256&#xff0c;并探讨它们的原理、特点及应用场景。 …...

机器学习基本篇

文章目录 1 基本概念2 基本流程2.0 数据获取2.1 预处理2.1.0 认识数据认识问题2.1.1 不平衡标签的处理a.随机过采样方法 ROS,random over-samplingb. SMOTE synthetic minority Over-Sampling Technique2.2 缺失值处理2.3 数据清洗2.3.0离散特征编码2.3.1 连续特征处理归一化标…...

#渗透测试#批量漏洞挖掘#Apache Log4j反序列化命令执行漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 Apache Log4j反序列化命令执行漏洞 一、…...

python常用库整理

Python常用库众多&#xff0c;涵盖了数据分析、科学计算、机器学习、Web开发、游戏开发、自然语言处理、图像处理、自动化测试等多个领域。以下是一些常用的Python库及其主要用途&#xff1a; 数据分析与科学计算 NumPy&#xff1a;用于科学计算的基础库&#xff0c;支持大型…...