混淆矩阵-召回率、精确率、准确率

混淆矩阵

  • 1 混淆矩阵
  • 2 混淆矩阵指标
    • 2.1 准确率
    • 2.2 精确率
    • 2.3 召回率
    • 2.4 特异度
    • 2.4 假正率
    • 2.5 假负率
    • 2.6 F1 分数
  • 3 总结

1 混淆矩阵

混淆矩阵是一种用于评估分类模型性能的重要工具。它通过矩阵形式清晰地展示了模型对样本进行分类的结果,帮助我们理解模型在不同类别上的表现。

————预测为正类预测为负类
实际为正类True Positive (TP)False Negative (FN)
实际为负类False Positive (FP)True Negative (TN)
  • True Positive (TP): 模型将实际为正类别的样本正确预测为正类别。
  • False Negative (FN): 模型将实际为正类别的样本错误预测为负类别。
  • False Positive (FP): 模型将实际为负类别的样本错误预测为正类别。
  • True Negative (TN): 模型将实际为负类别的样本正确预测为负类别。

通过上述指标,可以计算出一系列性能指标,例如准确率、精确率、召回率和F1分数。这些指标帮助我们量化模型的分类准确性、可靠性和全面性。

  • 注意:混淆矩阵的目的是帮助理解分类模型在不同类别上的表现,即只要是分类模型,可以考虑利用混淆矩阵,例如医学领域中,判断病人是否有某种疾病

2 混淆矩阵指标

2.1 准确率

准确率表示模型正确分类的样本占总样本数的比例,计算方式为:
准确率( A c c u r a c y ) = T P + T N T P + T N + F P + F N 准确率(Accuracy)=\frac{TP+TN}{TP+TN+FP+FN} 准确率(Accuracy=TP+TN+FP+FNTP+TN
如下图所示:
准确率
准确率可以判断总的正确率,但有如下缺点:

  • 在样本不平衡的情况下,并不能作为很好的指标来衡量结果。例如在一个样本中,正样本占99%,负样本占1%,样本是严重不平衡的,无论什么算法,只需要将全部样本预测为正样本即可有99%的准确率,这体现不出算法的性能

2.2 精确率

精确率又叫查准率。精确率表示所有被预测为正的样本中实际为正的样本的概率,它是针对预测结果而言的,计算方式为:
精确率( P r e c i s i o n ) = T P T P + F P 精确率(Precision)=\frac{TP}{TP+FP} 精确率(Precision=TP+FPTP
如下图所示:
精确率
准确率和精确率的区别如下:

  • 精准率代表对预测的正样本结果中的预测准确程度
  • 准确率则代表整体的预测准确程度

2.3 召回率

召回率,也称为 True Positive Rate (TPR) 或灵敏度或查全率,它表示在实际为正的样本中被正确预测为正样本的概率,它是针对原样本而言的,计算公式如下:
召回率( T P R ) = T P T P + F N 召回率(TPR)=\frac{TP}{TP+FN} 召回率(TPR=TP+FNTP
如下图所示:
召回率
召回率的应用场景:例如银行贷款等,将无信用的用户设定为正样本,这就需要保证召回率要足够高。如果召回率过低,就会把无信用用户预测为有信用用户,这样会造成严重损失。

2.4 特异度

特异度,也称为 True Negative Rate (TNR),它表示在实际为负的样本中被正确预测为负样本的概率,它是针对原样本而言的,计算公式如下:
特异度( T N R ) = T N T N + F P 特异度(TNR)=\frac{TN}{TN+FP} 特异度(TNR=TN+FPTN
如下图所示:
特异度
特异度的应用场景:例如银行贷款等,将无信用的用户设定为负样本,这就需要保证召回率要足够高。如果召回率过低,就会把无信用用户预测为有信用用户,这样会造成严重损失。

2.4 假正率

假正率,也称为False Positive Rate (FPR) ,它表示在实际为负的样本中被错误预测为正样本的概率,它是针对原样本而言的,计算公式如下:
假正率( F P R ) = F P F P + T N 假正率(FPR)=\frac{FP}{FP+TN} 假正率(FPR=FP+TNFP
如下图所示:
假正率

2.5 假负率

假负率,也称为False Negative Rate (FNR) ,它表示在实际为正的样本中被错误预测为负样本的概率,它是针对原样本而言的,计算公式如下:
假负率( F N R ) = F N T P + F N 假负率(FNR)=\frac{FN}{TP+FN} 假负率(FNR=TP+FNFN
如下图所示:
假负率

2.6 F1 分数

F1 分数是精确率和召回率的调和平均数,它综合了两者的性能,计算方式为:
F 1 = 2 × 精确率 × 召回率 精确率 + 召回率 F1=\frac{2×精确率×召回率}{精确率+召回率} F1=精确率+召回率2×精确率×召回率
F1的特点如下:

  • F1 分数的取值范围是 [0, 1],越接近 1 表示模型的性能越好,同时考虑到了模型在精确率和召回率之间的平衡。
  • F1 分数非常适合二分类问题
  • F1 分数越高则越意味着模型在查准率和查全率之间取得了良好的平衡

3 总结

混淆矩阵的主要性能指标,作如下总结:

  • 准确率:模型正确分类的样本占总样本数的比例,准确率衡量了模型在所有样本上的整体表现
  • 精确率:模型预测为正类别的样本中实际是正类别的概率,精确率衡量了模型在预测为正类别的样本上的准确性
  • 召回率:实际为正类别的样本中,正确预测为正样本的概率,召回度衡量了在实际为正样本中正确预测为正样本的预测概率
  • F1分数:精确率和召回率的调和平均数,F1分数衡量了精确率和召回率之间的平衡

混淆矩阵和上述性能指标共同提供了对分类模型性能全面的理解,并帮助评估模型的优缺点,进而进一步优化模型




参考如下:

  1. 机器学习,周志华
  2. 混淆矩阵(Confusion Matrix)
  3. 机器学习中的召回率、精确率、准确率

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

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

相关文章

【嵌入式】CAN总线详解

【嵌入式】CAN总线详解 一、CAN总线简介 CAN总线是一种控制器局域网总线,每一个挂载在CAN局域网的设备,都可以利用CAN去发送信息,也可以接收局域网的各种信息,每个设备都是平等的,共享CAN的资源。广泛应用于汽车、嵌…

从0开发一个Chrome插件:项目实战——翻译插件(附带申请谷歌翻译、百度翻译教程)

前言 这是《从0开发一个Chrome插件》系列的第十八篇文章,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发Chrome插件的必…

LabVIEW程序的常见加密方式

LabVIEW程序的加密对于保护知识产权和敏感数据至关重要。本文将详细介绍LabVIEW程序常用的加密方式,包括VI加密、代码保护、文件加密和通信加密等,帮助开发者选择合适的加密方法来确保程序的安全性和完整性。 LabVIEW程序的常见加密方式 VI加密&#xf…

【宠粉赠书】科研绘图神器:MATLAB科技绘图与数据分析

小智送书第二期~ 为了回馈粉丝们的厚爱,今天小智给大家送上一套科研绘图的必备书籍——MATLAB科技绘图与数据分析。下面我会详细给大家介绍这套图书,文末留有领取方式。 图书介绍 《MATLAB科技绘图与数据分析》是一本综合性强、内容丰富的书籍&#x…

Mybatis做批量操作

动态标签foreach,做过批量操作,但是foreach只能处理记录数不多的批量操作,数据量大了后,先不说效率,能不能成功操作都是问题,所以这里讲一讲Mybatis正确的批量操作方法: 在获取opensession对象…

动态规划解题步骤

状态规划题一般要列一个dp表 1、状态表示(重要) 什么是状态表示? 简单来说就是dp表里的值的含义 怎么得到状态表示? 1.题目要求 2.经验题目要求 3,分析问题的过程中发现重复子问题,找到状态表示 2、状态转移方程(重要) d…

Flutter学习(一)

1.Dart环境安装 官网:Get the Dart SDK | Dart Mac环境: Install Homebrew if needed. https://brew.sh/ Add the official tap. $ brew tap dart-lang/dart Install the Dart SDK. $ brew install dart 2.vscode配置 安装dart插件 安装code r…

哈喽GPT-4o——对GPT-4o 提示词的思考与看法

目录 一、提示词二、常用的提示词案例1、写作助理2、改写为小红书风格3、英语翻译和改写4、论文式回答5、主题解构6、提问助手7、Nature风格润色8、结构总结9、编程助手10、充当终端/解释器 大家好,我是哪吒。 最近,ChatGPT在网络上广受欢迎&#xff0c…

Nodejs--构建web应用

构建web应用 将从http模块中的服务器端中的request使劲按开始分析,request时间发生于网络连接建立,客户端想服务器发送报文,服务器解析报文,发现http请求的报文的时候,在出发request事件之前,已经准备好Se…

PDFFactoryFinePrint软件安装包下载+详细安装教程

简介: pdfFactory Pro(虚拟打印机)是一个无须 Acrobat 创建 Adobe PDF 文件的打印机驱动程序。 pdffactory pro虚拟打印机提供了比其他程序提供得更简单、更有效率和更少的花费的创建 PDF 文件的解决方案。用于需要安全的 PDF(法律文档、公司信息等)和其他高级功能…

vmware挂载本地目录到虚拟机

场景 本地环境一直在用vagrant,现在要安装指定版本的centos做k8s集群,vagrant 安装起来不是很方便,改用vmware 现在需要将本地目录挂载到虚拟机 解决 mount -t fuse.vmhgfs-fuse .host:/project /mnt/project/ -o allow_other.host:/project windows的…

C++回溯算法

迷宫的所有路径 ​ #include<bits/stdc.h> using namespace std; void f(int,int),print(); int n,m; int dx[]{0,1,0,-1}; int dy[]{1,0,-1,0}; char a[100][100]; bool flagfalse; struct point{int x,y; }; point r[10000]; int lr0; int main() {system("color…

从零手写实现 nginx-19-HTTP CORS(Cross-Origin Resource Sharing,跨源资源共享)介绍+解决方案

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

js实现一个数据结构——栈

栈的概念就不再赘述&#xff0c;无可厚非的先进后出&#xff0c;而JS又是高级语言&#xff0c;数组中的方法十分丰富&#xff0c;已经自带了push pop方法进行入栈出栈的操作。 1.基本实现 class Stack {constructor() {this.items [];}// 入栈push(item) {this.items.push(i…

List 列表

文章目录 一、什么是 List 列表1.1 创建 List 列表的方式1.2 列表的新增函数方法1.3 列表的删除函数方法1.4 修改列表数据的方法1.5 列表的查询函数方法1.6 列表的排序和反序1.7 列表的复制 一、什么是 List 列表 List 列表&#xff1a;该数据类型定义的变量可以理解为是一个数…

【Java】已解决java.lang.NoClassDefFoundError异常

文章目录 一、问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.lang.NoClassDefFoundError异常 一、问题背景 java.lang.NoClassDefFoundError 是 Java 运行时环境&#xff08;JRE&#xff09;在尝试加载某个类时&#xff0c;但没有找到…

leetcode 200 岛屿数量

思路 就是深搜&#xff0c;将可以走到的都标为0 ##代码 class Solution {static int[][] to {{1,0},{0,1},{-1,0},{0,-1}};public int numIslands(char[][] grid) {// 深搜int result 0;for (int i 0; i < grid.length; i) {for (int j 0; j < grid[0].length; j)…

Flask-REXTx 学习笔记——2.字段掩码(Fields masks)

简介 字段掩码是一种在序列化和反序列化过程中使用的机制&#xff0c;用于控制哪些字段应该被包含或排除。在不同的上下文中&#xff0c;字段掩码可能有不同的实现和应用方式&#xff0c;但基本概念是相似的。以下是对字段掩码的一般理解&#xff1a; 选择性序列化&#xff1…

基于51单片机贪吃蛇小游戏

基于51单片机贪吃蛇小游戏 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.用74HC573驱动点阵显示游戏画面&#xff1b; 2.上电后贪吃蛇会自动寻食&#xff1b; 3.按下四个按键中的任何一个就手动寻食了&#xff1b; ​演示视频&#xf…

java实现两个不同对象的集合复制

场景&#xff1a; 我们开发中会遇到集合对象复制的场景&#xff0c;可以避免代码的重复编写 基于 com.alibaba.fastjson.JSON 实现对象集合的拷贝 对象定义&#xff1a;ObjectA属性&#xff1a;id&#xff0c;name&#xff0c;ageObjectB属性&#xff1a;id&#xff0c;name…