【AI知识点】召回率、精确率、准确率、F1-score和混淆矩阵

news2024/10/11 0:32:09

AI知识点总结:【AI知识点】
AI论文精读、项目、思考:【AI修炼之路】


召回率、精确率、准确率、F1-score和混淆矩阵,这些是评估一个分类模型性能的常用指标,我们可以通过一个简单的二分类问题来说明它们的区别。这个例子是关于邮件垃圾分类的场景,假设我们要训练一个分类器来区分电子邮件是否是垃圾邮件。

假设的分类结果:

  • 总共分类了 100 封邮件。
  • 其中,实际垃圾邮件有 20 封,非垃圾邮件有 80 封。
  • 下面这个混淆矩阵(Confusion Matrix) 展示了分类模型的四种预测结果:
实际垃圾邮件 (Positive)实际非垃圾邮件 (Negative)
预测为垃圾邮件15 (TP)10 (FP)
预测为非垃圾邮件5 (FN)70 (TN)

定义这些术语

  • 真正类(TP):模型正确预测为垃圾邮件的邮件数。这里是 15 封。(阳性
  • 假正类(FP):模型错误地将非垃圾邮件预测为垃圾邮件的邮件数。这里是 10 封。(假阳性,误报,误诊
  • 假负类(FN):模型错误地将垃圾邮件预测为非垃圾邮件的邮件数。这里是 5 封。(假阴性,漏报,漏诊
  • 真负类(TN):模型正确预测为非垃圾邮件的邮件数。这里是 70 封。(阴性

各个指标的计算

1. 召回率(Recall)

  • 召回率衡量的是有多少真正的垃圾邮件被模型识别出来:
    Recall = TP TP + FN = 15 15 + 5 = 0.75 \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} = \frac{15}{15 + 5} = 0.75 Recall=TP+FNTP=15+515=0.75
  • 解释:真正的垃圾邮件有20封,其中15封被模型识别出来了,5封没有被识别出来(漏报),所以召回率为 0.75。
  • 适用场景:适合于关心漏报(假阴性) 的场景,比如:
    • 医疗诊断,漏诊一个病人可能造成严重后果。
    • 安全系统,漏检一个危险品会有高风险。

2. 精确率(Precision)

  • 精确率衡量的是模型预测为垃圾邮件的邮件中,实际为垃圾邮件的比例:
    Precision = TP TP + FP = 15 15 + 10 = 0.60 \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} = \frac{15}{15 + 10} = 0.60 Precision=TP+FPTP=15+1015=0.60
  • 解释:模型预测了25封为垃圾邮件,但其中只有15封是真的垃圾邮件,其他10封是误报,所以精确率为 0.60。
  • 适用场景:适合于关心误报(假阳性) 的场景,比如:
    • 垃圾邮件过滤系统,误报一封正常邮件为垃圾邮件可能影响用户体验。
    • 广告点击率预测,误报一条广告点击可能增加广告主的成本。

3. 准确率(Accuracy)

  • 准确率衡量的是模型所有预测中的正确率(包括正确识别的垃圾邮件和非垃圾邮件):
    Accuracy = TP + TN TP + TN + FP + FN = 15 + 70 15 + 70 + 10 + 5 = 0.85 \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} = \frac{15 + 70}{15 + 70 + 10 + 5} = 0.85 Accuracy=TP+TN+FP+FNTP+TN=15+70+10+515+70=0.85
  • 解释:准确率为 0.85,说明模型在 100 封邮件中有 85 封邮件分类正确。
  • 适用场景:适合用于数据集类别分布平衡且每一类都同等重要的情况。
  • 注意:但对于类别不平衡问题,它可能会误导模型的真实表现。比如如果 90% 的邮件是非垃圾邮件,模型可以只预测所有邮件为非垃圾邮件,准确率高达 90%,但这并不意味着模型对垃圾邮件有良好的识别能力。因此,准确率并不是衡量模型的最好指标。

4. F1-score

  • F1-score 是精确率和召回率的调和平均数,兼顾两者的平衡:
    F 1 = 2 × Precision × Recall Precision + Recall = 2 × 0.60 × 0.75 0.60 + 0.75 = 0.6667 F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} = 2 \times \frac{0.60 \times 0.75}{0.60 + 0.75} = 0.6667 F1=2×Precision+RecallPrecision×Recall=2×0.60+0.750.60×0.75=0.6667
  • 解释:F1-score 为 0.67,表示在平衡精确率和召回率的情况下,模型的综合性能。
  • 适用场景:适合在需要平衡精确率和召回率的情况下使用,例如当我们需要一个较为综合的指标来评估模型时。

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

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

相关文章

【笔记学习篇】一篇文章搞定Mybatis-快速回顾

概述 5.1.1 Mybatis简介 Mybatis是一款优秀的持久层框架,它以sql为中心,支持定制化sql、存储过程以及高级映射。 使用Mybatis框架,可以无需手动编写基础的JDBC代码、无需手动设置参数和转换结果集到对象。 Mybatis可以使用简单的xml或注解来…

App测试时常用的adb命令

adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。 adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作&#xff0…

银发产业资讯丨蚂蚁集团、金城药业、百联集团、京东健康布局业务

银发经济『新趋势大数据』 AgeNews 每日银发产业大事件速览 2024-10-8 星期二 AgeClub整理 金融监管总局:鼓励险企提供更多养老保障服务 蚂蚁集团等签署合作协议,聚焦智慧医疗领域 金城医药等合作聚焦年长女性健康科技领域 京东健康助力四川发放…

Internet Download Manager6.42免费版下载神器新体验

🚀 开篇就燃!你的下载速度被“TA”承包了 #### 🌟 初识IDM 6.42,下载界的“超跑”驾到 各位追求效率的小伙伴们,今天小红要来揭秘一款让我彻底告别“龟速”下载的神器——Internet Download Manager (简称IDM) 6.42版&…

日语学习零基础生活日语口语柯桥外语学校|股票用日语怎么说?

在日语中,“股票”可以说: • 株(かぶ) 这是最常用的表达方式,直接表示“股票”。 例如: 株を買う - 买股票 株を売る - 卖股票 • 株式(かぶしき) 这个词也是“股票”的意…

学习文档(二)

异常 这是Java 异常类层次结构图概览: Exception 和 Error 有什么区别? 一、概念与本质 Exception(异常):异常是在程序运行过程中出现的可预料的、可恢复的不正常情况。例如,试图打开一个不存在的文件时&#xff0…

【数据结构-栈】【位运算优化】力扣3170. 删除星号以后字典序最小的字符串

给你一个字符串 s 。它可能包含任意数量的 ‘’ 字符。你的任务是删除所有的 ’ 字符。 当字符串还存在至少一个 ‘*’ 字符时,你可以执行以下操作: 删除最左边的 ‘’ 字符,同时删除该星号字符左边一个字典序 最小 的字符。如果有多个字典…

【C++篇】虚境探微:多态的流动诗篇,解锁动态的艺术密码

文章目录 C 多态详解(进阶篇)前言第一章:多态的原理1.1 虚函数表的概念1.1.1 虚函数表的生成过程 1.2 虚表的存储位置 第二章:动态绑定与静态绑定2.1 静态绑定2.1.1 静态绑定的实现机制:2.1.2 示例代码: 2.…

从0到1:小区业主决策投票小程序开发笔记

可研 小区业主决策投票小程序: 便于业主参与社区事务的决策,通过网络投票的形式,大大节省了业委会和业主时间,也提高了投票率。其主要功能:通过身份证、业主证或其他方式确认用户身份;小区管理人员或业委会…

YOLO5的修改

在传统的yolov5网络中并不存在注意力机制,但是源代码中存在相关简略的代码: def __init__(self, c, num_heads):"""Initializes a transformer layer, sans LayerNorm for performance, with multihead attention and linear layers.See …

prometheus client_java实现进程的CPU、内存、IO、流量的可观测

文章目录 1、获取进程信息的方法1.1、通过读取/proc目录获取进程相关信息1.2、通过Linux命令获取进程信息1.2.1、top(CPU/内存)命令1.2.2、iotop(磁盘IO)命令1.2.3、nethogs(流量)命令 2、使用prometheus c…

tableau除了图表好看,在业务中真有用吗?

tableau之前的市值接近150亿美金,被saleforce以157亿美金收购,这个市值和现在的蔚来汽车差不多。 如果tableau仅仅是个show的可视化工具,必然不会有这么高的市值,资本市场的眼睛是雪亮的。 很多人觉得tableau做图表好看&#xff…

分布式常见面试题总结

文章目录 1 什么是 UUID 算法?2 什么是雪花算法?🔥3 说说什么是幂等性?🔥4 怎么保证接口幂等性?🔥5 paxos算法6 Raft 算法7 CAP理论和 BASE 理论7.1 CAP 理论🔥7.2 为什么无法同时保…

Echarts合集更更更之树图

实现效果 写在最后🍒 源码,关注🍥苏苏的bug,🍡苏苏的github,🍪苏苏的码云

DGL库之HGTConv的使用

DGL库之HGTConv的使用 论文地址和异构图构建教程HGTConv语法格式HGTConv的使用 论文地址和异构图构建教程 论文地址:https://arxiv.org/pdf/2003.01332 异构图构建教程:异构图构建 异构图转同构图:异构图转同构图 HGTConv语法格式 dgl.nn.…

极客兔兔Gee-Cache Day7

protobuf配置: 从 Protobuf Releases 下载最先版本的发布包安装。解压后将解压路径下的 bin 目录 加入到环境变量即可。 如果能正常显示版本,则表示安装成功。 $ protoc --version libprotoc 3.11.2在Golang中使用protobuf,还需要protoc-g…

【单链表的模拟实现Java】

【单链表的模拟实现Java】 1. 了解单链表的功能2. 模拟实现单链表的功能2.1 单链表的创建2.2 链表的头插2.3 链表的尾插2.3 链表的长度2.4 链表的打印2.5 在指定位置插入2.6 查找2.7 删除第一个出现的节点2.8 删除出现的所有节点2.9 清空链表 3. 正确使用模拟单链表 1. 了解单链…

重头开始嵌入式第四十八天(Linux内核驱动 linux启动流程)

目录 什么是操作系统? 一、管理硬件资源 二、提供用户接口 三、管理软件资源 什么是操作系统内核? 一、主要功能 1. 进程管理: 2. 内存管理: 3. 设备管理: 4. 文件系统管理: 二、特点 什么是驱动…

WebGoat JAVA反序列化漏洞源码分析

目录 InsecureDeserializationTask.java 代码分析 反序列化漏洞知识补充 VulnerableTaskHolder类分析 poc 编写 WebGoat 靶场地址:GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure application 这里就不介绍怎么搭建了,可以参考其他…

yq 工具

文章目录 yq命令快速 Recipes查找数组中的项目查找并更新数组中的项目深度修剪一棵树对数组中的项目进行多次或复杂的更新按字段对数组进行排序 OperatorsOmitOmit keys from mapOmit indices from array DeleteDelete entry in mapDelete nested entry in mapDelete entry in …