“深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”
目录
引言
分类标准
示例:癌症检测
1. 精确率(Precision)
2. 召回率(Recall)
3. 准确率(Accuracy)
4. F1-score
5. mAP(均值平均精度)
总结与通俗解释
引言
机器学习的核心目标之一是构建出具有良好性能的模型。为了评估模型的性能,我们依赖于一系列重要的指标。在本文中,我们将深入探讨这些指标,包括True Positive(TP)、True Negative(TN)、False Positive(FP)、False Negative(FN)、精确率、召回率、准确率、F1-score以及目标检测领域中常用的均值平均精度(mAP)。
分类标准
示例:癌症检测
假设我们正在开发一个癌症检测模型,我们有12个患者样本,其中4个是患有癌症的正例,8个是健康的负例。
# 模型预测结果
predicted = [0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]
# 实际标签
actual = [0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0]
| 预测值=1 | 预测值=0 | |
| 真实值=1 | 3(TP) | 1(FP) |
| 真实值=0 | 1(FN) | 7(TN) |
- TP = 3(实际患病并被正确预测出来的数量)
- FP = 1(实际健康但被错误预测为患病的数量)
- FN = 1(实际患病但被错误预测为健康的数量)
- TN = 7(实际健康并被正确预测出来的数量)
通过这些基本的概念,我们可以计算其他重要的性能指标。
1. 精确率(Precision)
精确率是指模型正确预测为正例的样本中,实际为正例的比例。计算公式为:
- 定义:精确率是指在所有模型预测为正例的样本中,实际为正例的比例。
- 应用场景:
- 欺诈检测:用于确定模型正确识别欺诈交易的比例,以减少误报。
- 医学诊断:用于评估模型正确诊断疾病的能力,减少误诊率。
2. 召回率(Recall)
召回率是指实际为正例的样本中,模型正确预测为正例的比例。计算公式为:
- 定义:召回率是指实际为正例的样本中,模型正确预测为正例的比例。
- 应用场景:
- 恶性肿瘤筛查:用于确保模型不会错过患有癌症的病例,减少假阴性。
- 安全检查点:用于确保模型不会错过潜在威胁,维护公共安全。
3. 准确率(Accuracy)
准确率是指模型正确预测的样本占总样本数的比例。计算公式为:
- 定义:准确率是指所有正确分类的样本数占总样本数的比例。
- 应用场景:
- 二进制分类问题:用于衡量模型整体性能,特别是当正例和负例样本数量相差较大时。
- 文本分类:用于测量模型正确分类文本的能力。
4. F1-score
F1-score综合考虑了精确率和召回率,是一个平衡两者的指标。计算公式为:
- 定义:F1分数是精确率和召回率的调和平均,用于综合考虑精确率和召回率的权衡。
- 应用场景:
- 搜索引擎结果排序:用于衡量搜索结果的质量,平衡相关性和多样性。
- 信息检索:用于评估检索系统的性能,以确保检索到的文档既相关又全面。
5. mAP(均值平均精度)
mAP在目标检测领域中广泛使用,是对模型在多个类别上的性能的平均度量。我们将其它指标拓展到多类别问题。计算公式为:
如下面图形,MAP值就是Precision和ReCall所围成的矩形面积


- 定义:mAP是一种用于衡量对象检测模型性能的指标,它计算每个类别的平均精确率,并将它们的平均值作为最终分数。
- 应用场景:
- 目标检测:用于评估对象检测模型的性能,特别是当存在多个对象类别时。
- 视觉搜索:用于评估图像检索系统的性能,以确保检索到的图像包含相关对象。
总结与通俗解释
通俗来说,准确率回答了“模型总的预测有多准”的问题;召回率回答了“模型对正例的识别能力有多强”的问题;mAP则是用于复杂任务的一个更为全面的评估指标;而F1-score则是尝试将精确率和召回率结合起来,给我们一个更为综合的评估结果。这些指标可以帮助我们更全面地了解模型的性能,从而选择或优化模型。
- TP:模型说“这个人有病”,实际上这个人也真的有病。
- TN:模型说“这个人没病”,实际上这个人也确实没病。
- FP:模型误诊了健康人为病人。
- FN:模型漏诊了真正的病人。
- 精确率:模型说“有病”的人中,真正有病的比例。反映了模型预测的准确性。
- 准确率:准确率是评估模型预测能力的一个基础指标,它反映的是模型所有预测中有多少是预测正确的。准确率越高,说明模型的整体预测能力越强。
- 召回率:召回率关注的是模型对正例的识别能力。它衡量的是在所有真正的正例中,模型能正确识别出多少。召回率高,意味着模型对正例的识别能力强,不会漏掉太多真正的正例。
- mAP:mAP是一个更为复杂的评估指标,主要用于图像分类、目标检测等任务中。它能够衡量模型在多类别上的性能,给出的是一个更为全面的评估。在实际应用中,如果我们的任务是要模型识别图像中的多个物体,那么mAP就是一个非常适合的评估指标。
- F1-score:这是一个综合了精确率和召回率的评估指标。它试图找到一个平衡点,使得精确率和召回率都达到一个相对较高的水平。F1-score高,意味着模型在精确率和召回率上都有不错的表现。
相关文章:
“深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”
目录 引言 分类标准 示例:癌症检测 1. 精确率(Precision) 2. 召回率(Recall) 3. 准确率(Accuracy) 4. F1-score 5. mAP(均值平均精度) 总结与通俗解释 引言 机器…...
Linux软件包(源码包和二进制包)
Linux下的软件包众多,且几乎都是经 GPL 授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。 GPL,全称 General Public License,中文名称“通…...
Leetcode-394 字符串解码(不会,复习)
此题不会!!!!!!!!!!!! 题解思路:元组思想:数字[字符串],每次遇到中括号意味着要重复数字次字符串…...
如何在Linux上搭建本地Docker Registry并实现远程连接
Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…...
assets_common.min.js
assets_common.min.js odoo将零散的js文件主要打包成了两个文件,分别是web.assets_common.min.js 和web.assets_backend.min.js, 我们分别看看这两个文件里都有些啥? common.js最先加载,看看里面都有些啥 1、boot.js 定义了od…...
前端工程化(vue2)
一、环境准备 1.依赖环境:NodeJS 官网:Node.js 2.脚手架:Vue-cli 参考网址:安装 | Vue CLI 介绍:Vue-cli用于快速的生成一个Vue的项目模板。主要功能有:统一的目录结构,本地调试࿰…...
深度学习(生成式模型)——Classifier Guidance Diffusion
文章目录 前言问题建模条件扩散模型的前向过程条件扩散模型的反向过程条件扩散模型的训练目标 前言 几乎所有的生成式模型,发展到后期都需要引入"控制"的概念,可控制的生成式模型才能更好应用于实际场景。本文将总结《Diffusion Models Beat …...
Hadoop架构、Hive相关知识点及Hive执行流程
Hadoop架构 Hadoop由三大部分组成:HDFS、MapReduce、yarn HDFS:负责数据的存储 其中包括: namenode:主节点,用来分配任务给从节点 secondarynamenode:副节点,辅助主节点 datanode:从节点&#x…...
P1529 [USACO2.4] 回家 Bessie Come Home 题解
文章目录 题目描述输入格式输出格式样例样例输入样例输出 提示完整代码 题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中。 Farmer John 按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数…...
Python语法基础(条件语句 循环语句 函数 切片及索引)
目录 条件语句关键字与C对照注意 循环语句while 循环语句while else 循环语句for 循环语句range() 函数 for else 循环语句循环控制语句练习:打印乘法表 函数函数定义及调用函数值传递和引用传递多返回值参数类型位置参数默认参数关键字参数可变数量的参数可变数量的…...
Debian 9 Stretch APT问题
Debian 9 Stretch APT问题 flyfish 操作系统 Debian 9 Stretch 错误提示 使用sudo apt update错误提示 Ign:1 http://mirrors.aliyun.com/debian stretch InRelease Ign:2 http://mirrors.aliyun.com/debian-security stretch/updates InRelease Ign:3 http://mirrors.al…...
遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解
一、异常产生 当我们使用foreach迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素或新增),可能会抛出java.util.ConcurrentModificationException的异常。 javapublic static void main(String[] args)…...
Android从一个APP跳转到另外一个APP
1、从当前APP去全新启动另外一个目标APP(非覆盖同一个进程): 启动另外一个目标APP(非覆盖原来APP的方式) 1、当前APP加入获取权限声明:(不加人权限检查,没法启动目标app࿰…...
我的创作纪念日——创作者2年
机缘 我最初使用CSDN估计是在2014年左右,当时还在读研,除了在当时比较有名的BBS例如小木虫上进行学术交流外,我发现很多问题百度后,都会转到CSDN,而且文章内容颇为专业,很多问题也都有专业的回答ÿ…...
大数据之LibrA数据库系统告警处理(ALM-12032 ommdba用户或密码即将过期)
告警解释 系统每天零点开始,每8小时检测当前系统中ommdba用户和密码是否过期,如果用户或密码即将在15天内过期,则发送告警。 当系统中ommdba用户过期的期限修改或密码重置,告警恢复。 告警属性 告警ID 告警级别 可自动清除 …...
C_3练习题
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 1.下列叙述中正确的是()。 A.用C程序实现的算法必须要有输入和输出操作 B.用C程序实现的…...
CentOS7 安装Jenkins 2.414.3 详细教程
目录 1、前提条件硬件软件-java11安装 2、安装jenkins3、启动jenkins配置用户和用户组配置JAVA_HOME 4、配置Jenkins一直处于启动状态5、测试Jenkins是否可以访问以及配置6、访问Jenkins系统 1、前提条件 硬件 内存 4G ; 硬盘 20G 软件-java11安装 上传文件jdk-11.0.21_lin…...
chatglm3-6b记录问答对
# 打开文件,第二个参数是打开文件的模式,a代表追加,也就是说,打开这个文件之后直接定位到文件的末尾 file open(chatlog.txt, "a") # 写入数据 file.write(ask:prompt_text\n) file.write(response:response\n) # 关闭文件 fil…...
k8s ingress 代理 mysql 3306端口
helm 安装 ingress-nginx helm upgrade --install ingress-nginx ingress-nginx \--repo https://kubernetes.github.io/ingress-nginx \--namespace ingress-nginx --create-namespace执行命令 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-ngin…...
Informix管理共享内存
1、查看共享内存使用情况 [informixREHL4 ~]$ onstat -g seg IBM Informix Dynamic Server Version 11.50.UC4 -- On-Line -- Up 00:38:21 -- 144144 Kbytes Segment Summary: id key addr size ovhd class blkused blkfree 393226 …...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
