【CV】从分类到回归:常见算法评价指标,如ROC,MAP等

news2024/11/25 4:34:58

目录

  • 分类问题
    • 准确率(Accuracy)
    • 精确率(Precision)
    • 召回率或真正率(Recall)
    • 假正率(False Positive Rate, FPR)
    • 特异性(Specificity)
    • ROC曲线
    • P-R曲线(精度-召回率曲线)
    • AP值
    • MAP指标
    • 在COCO数据集中的计算
  • F1值(F1-Score)
  • 什么时候用P-R曲线,什么时候用ROC曲线
  • 混淆矩阵
  • 回归问题

分类问题

准确率(Accuracy)

准确率是最简单也是最常用的分类指标之一。准确率指正确预测的样本数量占总样本数量的比例。准确率越高,说明模型的分类性能越好。
A c c u r a c y = T P + T N T P + F P + T N + F N Accuracy=\frac{TP+TN}{TP+FP+TN+FN} Accuracy=TP+FP+TN+FNTP+TN
其中, T P TP TP表示真正例,即实际为正类且被预测为正类的样本数量; T N TN TN表示真负例,即实际为负类且被预测为负类的样本数量; F P FP FP表示假正例,即实际为负类但被预测为正类的样本数量; F N FN FN表示假负例,即实际为正类但被预测为负类的样本数量。

精确率(Precision)

精确率用于衡量模型预测为正类的样本中真正为正类的比例,即衡量模型的准确性。精确率越高,说明模型预测为正类的样本中真正为正类的比例越高。
P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP

召回率或真正率(Recall)

召回率用于衡量所有实际为正类的样本中被模型预测为正类的比例(有效报警,灵敏度),即衡量模型的全面性。召回率越高,说明模型能够更好地发现正类样本。
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

假正率(False Positive Rate, FPR)

所有负例中预测为正例的负例(误报,假阳性率):
F P R = F P F P + T N FPR = \frac{FP}{FP + TN} FPR=FP+TNFP
其中FP表示假正例,TN表示真反例。

特异性(Specificity)

是指在所有实际为负例的样本中,被正确预测为负例的比例。具体地,特异性可以用下面的公式计算:
S p e c i f i c i t y = T N T N + F P Specificity = \frac{TN}{TN + FP} Specificity=TN+FPTN

ROC曲线

ROC曲线是一种衡量分类模型性能的图像化工具。ROC曲线的横轴是假正例率(FPR)也就是1-特异度,纵轴是真正例率(TPR),其形状可以反映出模型的性能。ROC曲线下面积(AUC)也是一种常用的分类指标,AUC越高,说明模型的性能越好。AUC的取值范围在0.5到1之间,AUC越接近1,分类器的性能越好。
在这里插入图片描述
ROC曲线是通过改变分类模型的阈值(Threshold)来绘制的。分类模型的输出结果一般是一个连续的实数值,我们可以将这个值作为阈值,将样本分为正例和负例。当阈值为正无穷大时,所有样本都被判为负例;当阈值为负无穷大时,所有样本都被判为正例;当阈值为0时,所有样本都被判为正例。通过改变阈值,我们可以得到不同的FPR和TPR,从而绘制ROC曲线。

P-R曲线(精度-召回率曲线)

对于每个类别,按照置信度从高到低对预测框进行排序。

定义一系列阈值 [ t 1 , t 2 , . . . , t n ] [t_1, t_2, ..., t_n] [t1,t2,...,tn],其中 t 1 t_1 t1为置信度最低的预测框的置信度, t n t_n tn为置信度最高的预测框的置信度。

对于每个阈值 t i t_i ti,将置信度高于 t i t_i ti的预测框视为正样本,低于 t i t_i ti的预测框视为负样本。根据预测框与真实框之间的IoU值进行匹配,得到一组匹配的正样本和对应的IoU值。

计算该阈值下的精度和召回率,其中精度为与匹配的预测框的置信度相等,召回率为正样本的个数除以真实框的总数。

用所有阈值下的精度和召回率绘制精度-召回率曲线,即将精度作为横轴,召回率作为纵轴,每个点的坐标为 ( P i , R i ) (P_i, R_i) (Pi,Ri),其中 P i P_i Pi为召回率大于等于 t i t_i ti时的精度, R i R_i Ri为召回率大于等于 t i t_i ti时的召回率。
在这里插入图片描述

AP值

AP是对精度-召回率曲线下方面积的度量,表示了模型在所有召回率下的平均性能。计算AP时,我们需要根据精度-召回率曲线的形状,对曲线下方的面积进行积分。AP的取值范围是0到1之间,越接近1表示模型的性能越好。

MAP指标

我们以目标检测任务为例,假设我们的模型要对一张图片中的物体进行检测,图片中包含苹果、橙子、香蕉三种水果。我们用模型对这张图片进行检测后,得到了结果.

首先,我们将所有检测结果按照置信度从高到低排序,得到以下结果:
类别 置信度 边界框
苹果 0.8 (10, 10, 100, 100)
橙子 0.7 (20, 20, 120, 120)
苹果 0.6 (50, 50, 150, 150)
香蕉 0.5 (30, 30, 130, 130)
橙子 0.4 (60, 60, 160, 160)
然后,我们按照上述步骤计算每个类别的AP值。以苹果类别为例,我们可以得到以下精度-召回率表格:
置信度阈值 精度 召回率
0.4 0.5 1.0
0.6 0.67 0.67
0.8 1.0 0.67
根据这个表格,我们可以绘制出苹果类别的精度-召回率曲线,并计算出它的AP值。同样的方法,我们可以计算出橙子和香蕉类别的AP值。最后,将所有类别的AP值进行加权平均,就可以得到最终的mAP值。
在绘制AP曲线时,我们需要将所有类别的精度-召回率曲线绘制在同一张图中,以便进行比较。同时,我们也可以绘制不同IoU阈值下的AP曲线,以评估模型在不同IoU阈值下的性能表现。

在COCO数据集中的计算

在COCO数据集中,Map指标被广泛应用于目标检测和分割任务的评估中。COCO数据集是一个包含了80个不同类别的超过33万个标注框的大型数据集,因此在该数据集上进行目标检测和分割任务的评估非常有代表性。
COCO数据集中的Map指标计算方法和一般的Map指标计算方法略有不同,具体公式如下:
A P = 1 ∣ R ∣ ∑ i = 1 ∣ R ∣ P i Δ r i AP = \frac{1}{|R|} \sum_{i=1}^{|R|} P_i \Delta r_i AP=R1i=1RPiΔri
M a p = 1 N ∑ i = 1 N A P i Map = \frac{1}{N} \sum_{i=1}^{N} AP_i Map=N1i=1NAPi
其中, R R R是所有真实标注框的集合, N N N是所有测试图片的数量。 A P i AP_i APi表示第 i i i张测试图片的平均精度,通过计算该图片中所有物体类别的平均精度的平均值得到 M a p Map Map指标。 P i P_i Pi表示第 i i i张测试图片所有物体类别的精度, Δ r i \Delta r_i Δri表示第 i i i张测试图片中每个类别的召回率差异。

对于每张测试图片,需要计算出该图片中每个物体类别的平均精度(AP),然后将所有物体类别的平均精度的平均值作为该图片的平均精度。最终,将所有测试图片的平均精度取平均值,即为COCO数据集的Map指标。
在计算每个物体类别的平均精度时,需要考虑召回率的差异,即不同尺寸的物体对召回率的贡献不同。因此,COCO数据集中的Map指标会为不同大小的物体赋予不同的权重,以更准确地评估模型对于不同大小物体的检测和分割能力。
在实际应用中,可以使用一些开源的计算工具,如COCO API和mAP计算器等,来方便地计算COCO数据集中的Map指标。

F1值(F1-Score)

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\frac{PrecisionRecall}{Precision+Recall} F1=2Precision+RecallPrecisionRecall

调和平均数(Harmonic Mean)是统计学中的一种平均数,它的计算方法为n个数的倒数的平均数的倒数。具体地,n个正数 x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn 的调和平均数可以表示为:
H = n 1 x 1 + 1 x 2 + . . . + 1 x n = n ∑ i = 1 n 1 x i H = \frac{n}{\frac{1}{x_1} + \frac{1}{x_2} + ... + \frac{1}{x_n}} = \frac{n}{\sum_{i=1}^{n} \frac{1}{x_i}} H=x11+x21+...+xn1n=i=1nxi1n
与算术平均数、几何平均数和中位数等常见的平均数不同,调和平均数更加关注小数值,因为任何一个小于1的数的倒数都大于1,所以当一组数据中有个别数较小的时候,调和平均数会受到这些小数的影响而偏小。因此,调和平均数常用于一些需要考虑极端值的场合,例如计算速度、平均速率等。

什么时候用P-R曲线,什么时候用ROC曲线

P-R曲线和ROC曲线都是常用的分类模型性能评估指标,但是它们适用的场景不同。
P-R曲线主要用于正负样本比例不平衡的情况下,例如当正样本比例很低时。P-R曲线的横轴是召回率,纵轴是精确率,它反映了在不同召回率下,模型的分类性能表现。P-R曲线的优点是对于正样本的分类能力有更好的体现,尤其是当正样本比例较低时,可以反映出模型的性能差异。

ROC曲线则适用于正负样本比例相对平衡的情况下。ROC曲线的横轴是假正率(false positive rate),纵轴是真正率(true positive rate),它反映了在不同阈值下,模型的分类性能表现。在ROC曲线中,点(0,0)表示将所有样本都预测为负样本,点(1,1)表示将所有样本都预测为正样本,曲线越靠近左上角,表示模型的性能越好。

总的来说,当正负样本比例不平衡时,我们可以使用P-R曲线进行模型性能评估;当正负样本比例相对平衡时,我们可以使用ROC曲线进行模型性能评估。

混淆矩阵

混淆矩阵是一种将分类结果可视化的矩阵,它可以用于计算准确率、精确率、召回率等指标。混淆矩阵的行表示实际类别,列表示预测类别,矩阵中的每个元素表示实际类别和预测类别的交集数量。
在这里插入图片描述

回归问题

均方误差(MSE)
均方误差是回归问题中最常用的评价指标之一,它用于衡量模型预测值与真实值之间的差异。均方误差越小,说明模型的预测性能越好。
M S E = 1 n ∑ i = 1 n ( y i − y i ^ ) 2 MSE=\frac{1}{n}\sum\limits_{i=1}^{n}(y_i-\hat{y_i})^2 MSE=n1i=1n(yiyi^)2
其中, n n n表示样本数量, y i y_i yi表示第 i i i个样本的真实值, y i ^ \hat{y_i} yi^表示模型的预测值。

均方根误差(RMSE)
均方根误差是均方误差的平方根,它也用于衡量模型预测值与真实值之间的差异。均方根误差越小,说明模型的预测性能越好。
R M S E = 1 n ∑ i = 1 n ( y i − y i ^ ) 2 RMSE=\sqrt{\frac{1}{n}\sum\limits_{i=1}^{n}(y_i-\hat{y_i})^2} RMSE=n1i=1n(yiyi^)2

平均绝对误差(MAE)
平均绝对误差是回归问题中另一个常用的评价指标,它也用于衡量模型预测值与真实值之间的差异。平均绝对误差越小,说明模型的预测性能越好。
M A E = 1 n ∑ i = 1 n ∣ y i − y i ^ ∣ MAE=\frac{1}{n}\sum\limits_{i=1}^{n}\left|y_i-\hat{y_i}\right| MAE=n1i=1nyiyi^

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

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

相关文章

AI换脸背后的产业链详解,往后神仙姐姐背后有可能是......

近期在各大平台都可以看到换脸新闻,和大家分享一下最近让我心痛的一张图片 那除了大家用来恶搞之外,AI诈骗的新闻层出不穷。我们国内目前今天最大的是下面这起事件: 而国外,因为技术更加成熟一点,所以被诈骗的金额高达…

PostgreSQL修炼之道之数据库优化(十八)

12.1 数据库优化准则和方法 12.1.1 数据库优化准则 数据库优化的思路有很多种。比较常用的是下面两种优化思路。 第一种思路:有人说过,“The fastest way to do something is dont do it”,意思是说,“做得最快的方法就是不做”…

mysql 集群实验~~双主双从搭建

这里写目录标题 搭建mysql集群实现双主双从的同步一、部署环境1.1 分别安装mysql服务并设置域名解析 二、 配置双主MySQL服务器2.1由于是双主,所以master2是master1的从,同时master1又是master2的从所以都要开启二进制和中继日志2.2 重启服务2.3 测试双主…

医院云HIS:运维运营分系统功能简介

一、运维运营分系统简介 一级菜单包括:系统运维、综合监管、系统运营 系统运维包括二级菜单:环境管理、应用管理、菜单管理、接口管理、任务管理、配置管理 综合监管包括二级菜单:综合监管 系统运营包括二级菜单:机构管理、药…

【海明码】一题学会海明码!

一、详细步骤 1、海明码,也称汉明码 2、海明码数据码校验码 3、假设数据码为1100,有4位,即n4 4、由公式2^k>nk1,解得k3,即需3个校验码 5、校验按2^i(即2的i次幂,如1、2、4、8、16、32..…

2入门matlab图像处理图像的基本操作(matlab程序)

学习目标:学习关于图像的基本操作 代码及运行结果 %% 通过抖动来增强图像的色彩对比度 clear all; close all; Iimread(cameraman.tif); %读取灰度图像 BWdither(I); %通过抖动转换为二值图像来增强图像的色彩对比度 subplot(121); imshow(I); subplot(122);…

电气火灾监控系统行业技术应用现状

摘要:我国现有的电气火灾监控系统的应用效果不佳,为了让电气火灾监控系统的发展能满足现代化人们的需要,对此进行分析与研究。网络化时代的到来,电气火灾监控系统将顺应时代潮流,逐步实现系统的网络化、智能化、可视化…

神经网络原理(1)

眼下最热门的技术,绝对是人工智能。 人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能&a…

sql笛卡尔积和自然连接

SQL中的笛卡尔积 即AxB。可以简单理解为两个集合的乘积。 SQL语法 SELECT * FROM tb1 CROSS JOIN tb2; -- 等价于 SELECT * FROM tb1, tb2; -- 等价于 SELECT * FROM tb1 INNER JOIN tb2; -- 这是内连接**CROSS JOIN不能加ON。** 从行和列两个维度来观察上例笛卡尔积的结果集…

Mybatis源码分析_解析大流程梳理_补充 (4)

上一篇&#xff0c;我们这只是粗略的说了一下Mybatis的配置文件解析的大体流程。而这一篇针对上一篇进行补充。 1. <sql> 是如何解析的 我们经常会把一些公用的&#xff0c;重复出现的字段写在<sql>标签中&#xff0c;而通过上图&#xff0c;我们知道sqlElement是…

unity 性能优化学习笔记——静态资源的导入

1 Audio导入设置检查与优化 根据平台选择合理的音频设置&#xff0c;原始音频资源尽量采用未压缩WAV格式 - 移动平台对音乐音效统一采用单通道设置&#xff08;Force to Mono&#xff09;,并将音乐采样频率设置为22050Hz - 移动平台大多数声音尽量采用Vorbis压缩设置&#xff0…

RISC-V处理器的设计与实现(一)—— 基本指令集

本人小白一枚&#xff0c;在学习FPGA的过程中偶然刷到了tinyriscv这个开源项目&#xff0c;并且自己对计算机体系结构的知识也很感兴趣&#xff0c;所以想参考这个开源项目做一个基于RISC-V指令集的CPU&#xff0c;下面是tinyriscv这个开源项目的地址&#xff0c;本项目很多思路…

专属 Python 开发的完美终端工具

概要 Rich 是一个 Python 库&#xff0c;用于在终端中提供富文本格式和精美的格式。 Rich 是一个非常强大的 Python 库&#xff0c;不仅在终端中提供丰富的文本和漂亮的格式&#xff0c;还可以显示表情符号、表格、进度条、标记&#xff0c;甚至语法突出显示的代码。 Rich 是一…

nginx的优化

目录 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 二 nginx的优化之日志分割 三 nginx的优化之页面压缩 四 连接超时 五 nginx的并发设置 七总结:nginx的优化 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 如图所示 第一种方法是关…

什么是 DOM?DOM树如何生成的?

什么是 DOM 文档对象模型(Document Object Model)。它提供了对文档结构化的描述,并将HTML页面与脚本、程序语言联系起来。 在渲染引擎中&#xff0c;DOM有以下几个层面的作用&#xff1a; 从页面来看&#xff0c;DOM就是生成页面的基本数据结构从JS脚本来看&#xff0c;DOM提…

前端 js 操作 Cookie 详细介绍与案例

1 前言 1.1 详细介绍 名称和值&#xff1a;Cookie由一个名称和对应的值组成。名称是一个字符串&#xff0c;用于标识Cookie&#xff0c;而值则是与名称相关联的数据。域名&#xff1a;每个Cookie都与特定的域名相关联。Cookie只会被发送到与其关联的域名下的请求中。路径&…

MybatisPlus多数据源原理与问题简析

文章目录 1. 使用1.1. 引包1.2 增加配置1.3 使用DS注解 2. 源码2.1 Configuration文件, 加载配置与bean注入2.1.1 配置类 2.2 注册DataSource2.2.1 获取所有的DataSource2.2.1.1 构建DataSource 2.2.2 对数据源分组 2.3 切换数据源2.3.1 DynamicDataSourceContextHolder2.3.2 D…

【LLMs 入门实战 】第一式:Vicuna 模型学习与实战

UC伯克利学者联手CMU、斯坦福等&#xff0c;再次推出一个全新模型70亿/130亿参数的Vicuna&#xff0c;俗称「小羊驼」&#xff0c;小羊驼号称能达到GPT-4的90%性能。 欢迎使用小羊驼&#x1f999;环境搭建权重下载下载 Vicuna Weight下载 LLAMA Weight构建真正的 working weigh…

InceptionNext实战:使用InceptionNext实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译&#xff1a;https://wanghao.blog.csdn.net/article/details/131347001?spm1001.2014.3001.5502 官方源码&#xff1a;https://github.com/sail-sg/incept…

Spring Boot详细应用示例:构建一个简单的图书管理系统

文章目录 摘要正文1. 创建Spring Boot项目2. 配置数据库3. 创建实体类4. 创建数据访问层5. 创建业务逻辑层6. 创建控制器层7. 创建前端页面8. 添加身份验证9. 测试运行 小结 摘要 本文将介绍如何使用Spring Boot框架构建一个简单而完整的图书管理系统。通过这个示例&#xff0…