【数学建模】分类问题的几种常见指标(一)——准确率、召回率、F1值

article/2025/11/7 5:04:20

分类问题的几种常见指标(一)——错误率、精度、准确率、召回率、F1值

  • 前言
  • 1 错误率与精度
  • 2 准确率与召回率
    • 2.1 混淆矩阵
    • 2.2 准确率(Precision)
    • 2.3 召回率(Recall)
  • 3 F1值(F1-score)
  • 4 代码实现

前言

分类问题是数学建模和大数据竞赛中几大常见题型之一。评价分类效果的指标有错误率、精度、准确率(precision,也称之查准率)、召回率(recall,也称之查全率)、F1-Score、ROC曲线、AUC和对数损失(logloss)等。这些指标都可以评价一个模型的好坏,其之间也有许多关联,需要针对具体题目场景来选择评价指标。本节主要介绍错误率、精度、准确率、召回率、F1值这几种评价指标。

1 错误率与精度

在分类问题中,错误率是分类结果错误的样本数占样本总数的比例,精度则是分类结果正确的样本数占样本总数的比例。即,错误率 = 1–精度。

2 准确率与召回率

2.1 混淆矩阵

以二分类问题为例,介绍一个重要的定义:混淆矩阵,如下图所示
在这里插入图片描述
假设A类为Positive,正例(阳性);B类为Negative,反例(阴性),则

  • Ture Positive(TP):预测对了(T),预测结果为A(阳性-P),原类别为A;
  • False Positive(FP):预测错了(F),预测结果为A(阳性-P),原类别为B;
  • False Negative(FN):预测错了(F),预测结果为B(阴性-N),原类别为A;
  • Ture Negative(TN):预测对了(T),预测结果为B(阴性-N),原类别为B。
    总而言之,混淆矩阵的字母代表该次预测的对的还是错的(T/F)和预测结果是正例还是反例(P/N),进而就可以推断原来的类别是什么。(比如FN,预测的是类别B,预测错了,那原来的类别就是A)

2.2 准确率(Precision)

准确率(Precision)是指被分类器判定为正类的样本中真正的正类样本所占的比重,即被分类器判为正类的所有样本中有多少是真正的正类样本,其公式定义见以下公式
在这里插入图片描述

2.3 召回率(Recall)

召回率是指被分类器正确判定的正类样本占总的正类样本的比重,即所有正类样本中有多少被分类器判为正类样本,定义如以下公式:
在这里插入图片描述

3 F1值(F1-score)

准确率和召回率反映了分类器性能的两个方面,单依靠其中一个并不能较为全面地评价一个分类器的性能。一般来说,鱼与熊掌不可兼得,你的准确率越高,召回率越低;反之,召回率越高,准确率越低。继而为了平衡准确率和召回率的影响,较为全面地评价一个分类器,便有了 F1-score 这个综合了这两者的指标。
在这里插入图片描述

4 代码实现

构建一个计算准确率、召回率和 F1-score 的评价代码也很简单,具体实现代码如下:

  • 假设有A类样本10个,B类样本5个,A类样本用1表示,B类样本用0表示。
  • 正确预测A类样本7个,正确预测B类样本3个
    所以混淆矩阵的具体表示如下:
    在这里插入图片描述
  • 准确率 Precision = TP/(TP+FP) = 7/(7+2) = 0.78
  • 召回率 Recall = TP/(TP+FN) =7/(7+3) = 0.7
  • F1值 F1 = 2PrecisionRecall/(Precision+Recall) = 0.74

以下为代码实现:

from sklearn.metrics import precision_score, recall_score, f1_score
# 假设有A类样本10个,B类样本5个
y_train = [1,1,1,1,1,1,1,1,1,1,0,0,0,0,0]
# 正确预测A类样本7个,正确预测B类样本3个
y_pred = [1,1,1,1,1,1,1,0,0,0,1,1,0,0,0]precision = precision_score(y_train, y_pred)
recall = recall_score(y_train, y_pred)
f1 = f1_score(y_train, y_pred)print('准确率为:', precision)
print('召回率为:', recall)
print('F1值为:', f1)

执行结果如下图所示:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/BtAcH3KB.shtml

相关文章

准确率、精确率、召回率、F1值、ROC/AUC整理笔记

文章目录 前言 一、TP、TN、FP、FN概念二、准确率、精确率(精准率)、召回率、F1值1.准确率(Accuracy)2.精确率(Precision)查准率3.召回率(Recall)查全率4.F1值(H-mean值&…

准确率、精准率、召回率和F1值详解

专业术语的中英文对照表 英文名准确率Accuracy精准率Precise召回率RecallF1值F1 measure Precise和Recall是广泛应用在信息检索和统计学分类领域的两个度量值,用来评价结果的质量;F1 measure是综合Precise和Recall两个指标的评估指标,用于综…

matlab color选取(颜色对照表)

只看前面部分,后面的颜色不用看 参考链接:https://wenku.baidu.com/view/111e6c47773231126edb6f1aff00bed5b8f3734e.html

Matlab RGB 颜色对照表(0-1之间取值)

需要说明的是我并非此表的制作者,原链接如上,我也已将原作者信息一并截入图中,此举只是为了扩大此表传播度,所以连标题都没改。此前想找个如此全的对照表找了好久,是同门师妹发给我该链接才知道这张表,感谢…

matlab画图RGB调色

1.使用matlab画图时,怎样才能调出顺眼的颜色呢?反正我之前使用红、绿、蓝三种颜色画图时,真的辣眼睛。下面这图是我根据一篇论文上的图像调的颜色: 我也知道这并不好看,但是可以给各位提个醒、提个方向。 代码也奉上&…

让颜色对应数值,matlab colormap

#问 如何让自己画出的数值对应不同的颜色呢?换话句话说,如何用不同的颜色表示不同的数值呢? 就是让数值的范围对应颜色的范围。 matlab colormap ##标准色 hsv 色彩饱和值(以红色开始束) hot 从黑到红到黄到白 cool …

【Matlab】到底怎么自定义colorbar/colormap的颜色?

1.Introduction 最近在搜混淆矩阵的时候,发现别人做的图研究就是好看。于是乎开始探寻怎么改变图片colorbar的颜色,搜到后面发现其实是改变colormap的颜色,colorbar只是显示而已。 中间也走过不少坑,一把辛酸泪呀~ 2.Materials …

MATLAB | 有关数值矩阵、颜色图及颜色列表的技巧整理

这是一篇有关数值矩阵、颜色矩阵、颜色列表的技巧整合,会以随笔的形式想到哪写到哪,可能思绪会比较飘逸请大家见谅,本文大体分为以下几个部分: 数值矩阵用颜色显示从颜色矩阵提取颜色从颜色矩阵中提取数据颜色列表相关函数颜色测…

MATLAB颜色的使用(转)

http://blog.csdn.net/t673afa/archive/2009/09/29/4617106.aspx 如何使用、显示、修改和如何创建用户自己的颜色映象。然后,阐述在一个 图形窗口 中仿真多个颜色映象的技术或只使用颜色映象的一部分的技术。最后,讨论照明模型并提供例子。 颜色映象理解…

Linux更换挂载点

目的:/dev/vdb 原本挂载在/data目录下,现在将他挂载在/data0 目录下 步骤: 1、查看/dev/vdb 的挂载点 #df -h2、卸载 /data 挂载点 #umount /data #df -h3、创建新的挂载点,并挂载、查看 #mkdir /data0 #mount /dev/vdb /data0…

Linux各个挂载点及其分区介绍

本文介绍Linux常用分区挂载点常识以及桌面、服务器分区挂载点的推荐配置,当然这个配置是天缘自己写的,分区大小这个话题是仁者见仁智者见智,欢迎大家一起交流这个话题,比如WEB服务、邮件服务、下载服务等,我们一起交流…

Linux磁盘分区和挂载点

https://www.jianshu.com/p/cc2d19dcc204 在Linux系统中最多只有16个分区。Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。Windows是用不同的盘符来区分并抽象不同的分区方便我们访问,那么Linux是如何区分不同的分区的…

centos 的挂载和挂载点理解

文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.7M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/vda1 40G 2.5G 35G 7% / tmpfs 1.6G 0 1.6G 0% /run/user/0 当我从华为云上安装好以后自动出现以…

linux 文件系统挂载时挂载点(目录)的选择

本篇内容很简单,就是给大家强调一个小知识点。在挂载文件系统的时候,尽可能选择空目录进行挂载,当然了不是空的目录也可以,但是不建议。 在实际的挂载中会出现这样一种情况,如果选择当挂载点的目录非空,当文…

到底什么是挂载?

首发公号:Rand_cs 在 L i n u x Linux Linux 的文件系统中,有个很重要的概念就是挂载,挂载大家应该都很熟悉,除了根文件系统,其他所有文件系统都要先挂载到根文件系统中的某个目录之后才能访问。 所谓的根文件系统就…

磁盘挂载

挂载数据盘 1.使用fdisk -l查看磁盘情况 2.使用df -h查看文件系统以及挂载点等磁盘信息 3.手动添加一块数据盘 这里演示挂载这个新添加的20G的硬盘。 4.fdisk -l看一下 已经有磁盘,新磁盘名字为/dev/sdb。 容量为20G,并且使用df -h可以看到并没有挂载…

设备文件名、挂载-挂载点、分区

设备文件名 在Linux系统中,每个设备都被当初一个文件来对待,因此,各种设备在Linux中是有他们独特的文件名的,也就是设备文件名。 举例:sda1 上述例子中 sa的含义:SCSI硬盘接口/SATA硬盘接口,…

Linux系统分区及挂载点

一、关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition)两种,主分区可以马上被使用但不能再分区&…

mount point does not exist.挂载点不存在

翻译过来是挂载点不存在。 方法: 创建挂载目录mkdir (挂载目标目录)重新挂载 mount(目标目录) 挂载查询命令,检验是否挂载成功:lsblk -f