【详细解释深度学习图像分类检测评价指标】准确率Accuracy、精确率Precision、召回率Recall、mAP等(一文搞懂,建议收藏)

前言

😊😊😊欢迎来到本博客😊😊😊

🌟🌟🌟 本专栏主要是记录工作中、学习中关于AI(Deep Learning)相关知识并分享。

😊😊😊 具体食用方式:可以点击本专栏【笔记目录】快速查阅您和我遇到的一样的问题、想查阅的知识以及其他相关问题。

🎁🎁🎁支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!😙😙😙


文章目录

  • 图像分类篇
    • (1) 混淆矩阵
    • (2) Accuracy(准确率/精度)
    • (3) Precision(精确度)/查准率
    • (4) Recall(召回率)/敏感度/查全率/真正(阳)率TPR
    • (5) Specificity(特异度)/TNR
    • (6) 假正(阳)率FPR
    • (7) Fβ-Score/F1-Score
    • (8) P-R(Precision-Recall)曲线
    • (9) ROC(Receiver Operating Characteristic)曲线
    • (10) AUC(Area Under Curve)
    • 总结:P-R曲线、ROC曲线、AUC关系、特点、用途
  • 目标检测篇


  在计算机视觉领域,不管是图像分类、目标检测、图像分割还是其他领域,评价其模型好坏都有对应的评价指标。下面对图像分类及目标检测领域常见的评价指标做个总结,两个领域也会有互通(相似)部分,其他领域后期有时间会在此博文基础上继续更新。 大家在平时科研、工作中也许会用到,本文争取用简单易懂方式总结出来。

图像分类篇

(1) 混淆矩阵

  混淆矩阵不管是二分类,还是多分类都可能会用到,下面以二分类为例:

  这里牵扯到三个方面:真实值,预测值,预测值和真实值之间的关系,以下以猫狗分类为例,猫为正例,够为反例

  

情况定义举例
True Positive(TP)
真正例
样本的真实类别是正例,并且模型识别的结果也是正例。这是一张猫的图片(真实类别),模型识别为猫(预测结果)。
False Negative(FN)
假反例
样本的真实类别是正例,但是模型将其识别为负例。这是一张猫的图片(真实类别),模型识别为(预测结果)。
False Positive(FP)
假正例
样本的真实类别是负例,但是模型将其识别为正例。这是一张狗的图片(真实类别),模型识别为(预测结果)。
True Negative(TN)
真反例
样本的真实类别是负例,并且模型将其识别为负例。这是一张狗的图片(真实类别),模型识别为(预测结果)。

  形象的示例如下:

(2) Accuracy(准确率/精度)

  准确率是最常见的分类任务评价指标,表示模型正确预测的样本数占总样本数的比例缺点:但在某些不平衡类别的情况下,准确性可能不是一个很好的指标。

  对于多分类而言,分子其实是混淆矩阵对角线样本之和,分母为所有测试样本之和。

(3) Precision(精确度)/查准率

  精确度也叫查准率注意:不要和上面的准确率混淆!!!它是指在所有被模型预测为正例的样本中,实际为正例的比例。
  作用:精确度关注的是模型预测为正例的准确性。

  公式为:

  对应上述案例中,如下部分:

(4) Recall(召回率)/敏感度/查全率/真正(阳)率TPR

  召回率的同义词比较多,它是指在所有实际为正例的样本中被模型正确预测为正例的比例
  作用:召回率关注的是模型对正例的覆盖程度。

  公式为:

  对应上述案例中,如下部分:

(5) Specificity(特异度)/TNR

  特异度要和上个含义做个区别,它是指在所有实际为反例的样本中被模型正确预测为反例的比例,即TN

  公式为:

  对应上述案例中,如下部分:

(6) 假正(阳)率FPR

  假正(阳)率要和特异度做个区别,它是指在所有实际为反例的样本中被模型错误预测为正例的比例,即FP,它正好与特异度相反。

  公式为:

  对应上述案例中,如下部分:

(7) Fβ-Score/F1-Score

  PrecisionRecall 是互相影响的,理想情况下肯定是希望做到两者都高,但是一般情况下Precision高、Recall 就低; Recall 高、Precision就低。
  为了均衡两个指标,我们可以采用PrecisionRecall的加权调和平均来衡量,即Fβ-Score,公式如下:

  通俗的就是:β越大,Recall的权重越大;β越小,Precision的权重越大。由于Fβ Score 无法直观反映数据的情况,同时业务含义相对较弱,实际工作用到的不多。所以,当β=1时,即为F1-Score值。

  F1-Score是精确度和召回率的调和平均值
  作用:综合考虑了模型的准确性和覆盖率。F1-Score在不同类别不平衡的情况下比Accuracy准确性更具意义

  公式为:

其中β>1,更加注重召回率;F<1,值更加重视准确率。

(8) P-R(Precision-Recall)曲线

  PR曲线的x轴代表:Recall召回率/查全率,也就是真正率;y轴代表:Precision精准率/查准率。
  为了找到一个最合适的阈值满足我们的要求,我们就必须遍历0到1之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而我们就得到了这条曲线。PR曲线比较关注于正样本的情况。它本身没有关注负样本,每条P-R曲线代表一个类别

  如何看这张图?

  如果某一类(条)PR曲线完全“包住”,可以判断后者的性能优于前者,像上图中学习器A的性能就优于学习器C;
  若是两个学习器的PR曲线发生交叉,像A和B,就比较难判断哪个学习器比较好,只能在查准率或查全率条件单独进行比较。
  这里引入**平衡点(Break-Even Point,BEP)**的概念,平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。或者采用F1-Score,F1-Score值越大,我们可以认为该学习器的性能较好。

(9) ROC(Receiver Operating Characteristic)曲线

  准确率、精确率、召回率 和 F1-score 前面介绍了都是单一的数值指标。如果想观察分类算法在不同的参数下的表现,此时可以使用一条曲线,即 ROC
  ROC 曲线可以用评价一个分类器在不同阈值下的表现。横纵坐标均基于真实值为分母

  横坐标为假正率( FPR,FPR = FP / [ FP + TN]),表示负样本中错误预测为正样本的概率。纵坐标为真正率(TPR,TPR = TP / [ TP + FN]),表示正样本中预测正确的概率。

  根据分类识别的阈值,可生成不同的FPR值和TPR值,用于绘制ROC曲线。曲线越接近左上角越好。ROC曲线兼顾了正,负样本常用于分类器的评价指标

  上图ROC 曲线中,有四个关键点:

  (0,0)点:FPR=TPR=0,表示分类器预测所有的样本都为负样本;
  (1,1)点:FPR=TPR=1,表示分类器预测所有的样本都为正样本;
  (0,1)点:FPR=0,TPR=1,此时FN=0且FP=0,表示最优分类器,样本都被正确分类;
  (1,0)点:FPR=1,TPR=0,此时TP=0且TN=0,表示最差分类器,样本都被错误分类;

我们可以通过一个案例来理解:
  如在医学诊断的主要任务是尽量把生病的人群都找出来,也就是TPR越高越好。而尽量降低没病误诊为有病的人数,也就是FPR越低越好。
  不难发现,这两个指标之间是相互制约的。**如果某个医生对于有病的症状比较敏感,稍微的小症状都判断为有病,那么他的TPR应该会很高,但是FPR也就相应地变高。**最极端的情况下,他把所有的样本都看作有病,那么TPR达到1,FPR也为1。

(10) AUC(Area Under Curve)

  AUC 值为 ROC曲线下所覆盖的区域面积,这个面积的数值不会大于1。场景:当两个模型的ROC曲线发生交叉,则很难说哪一个模型更好,这时候可以用AUC 来作为一个比较合理的判据,这样可以直观的评价分类器的好坏,值越大越好注意!!ROC是曲线,AUC是区域。

  AUC的值代表分类器的优劣:
  (1) AUC=1:这是理想的分类器;
  (2) AUC=0.5:相当于随机预测(跟抛硬币一样),此时分类器不可用;
  (3) 0.5<AUC<1:优于随机预测,这也是实际作用中大部分分类器所处的状态;
  (4) AUC<0.5:总是比随机预测更差;

总结:P-R曲线、ROC曲线、AUC关系、特点、用途

  P-R曲线特点

  (1) P-R曲线使用了Precision和Recall,因此PR曲线的两个指标都聚焦于正例类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线
  (2) P-R曲线右上越凸,效果越好;

  ROC曲线特点
  (1) 当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。因为TPR聚焦于正例,FPR聚焦于与负例,使其成为一个比较均衡的评估方法。
  (2) ROC 曲线展示了分类器在不同阈值下的综合性能,对分类器的整体能力进行评估。AUC 提供了一个定量指标来衡量 ROC 曲线下的性能。

  总之,P-R 曲线和 ROC 曲线提供了不同维度的分类器性能评估。P-R 曲线适合不平衡数据集,重点关注正例的预测性能;而 ROC 曲线和 AUC 适用于整体性能评估,对类别不平衡和阈值选择不敏感。

  使用场景
  (1) ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言PR曲线完全聚焦于正例。
  (2) 如果有多份数据且存在不同的类别分布,比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROC曲线比较适合,因为类别分布改变可能使得PR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PR曲线比较适合
  (3) 如果想要评估在相同的类别分布下正例的预测情况,则宜选PR曲线。类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。
  (4) 最后可以根据具体的应用,在曲线上找到最优的点,得到相对应的precision,recall,f1 score等指标,去调整模型的阈值,从而得到一个符合具体应用的模型。


目标检测篇

AP,mAP,IOU(CIOU/DIOU…)等待更新。。。


🚶🚶🚶 今天的文章就到这里啦~
喜欢的话,点赞👍、收藏⭐️、关注💟哦 ~

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

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

相关文章

函数递归(Recursion)一篇便懂

递归的概念 在 C 语言中&#xff0c;递归&#xff08;Recursion&#xff09;是一种函数调用自身的编程技术。当一个函数在其定义中调用自身时&#xff0c;就称为递归函数。 了解递归思想 把⼀个大型复杂问题层层转化为⼀个与原问题相似&#xff0c;但规模较小的子问题来求解…

常用界面设计组件 —— 容器组件

2.6 容器组件2.6.1 QGroupBox2.6.2 QScrollArea2.6.3 QToolBox2.6.4 QTabWidget2.6.5 QStackedWidget 2.6 容器组件 为了将界面上的各个组件的分布设计得更加美观&#xff0c;经常 使用一些容器类&#xff0c;如 QgoupBox、QtabWidget、 QToolBox等。 2.6.1 QGroupBox 实例效…

UE4运用C++和框架开发坦克大战教程笔记(十五)(第46~48集)

UE4运用C和框架开发坦克大战教程笔记&#xff08;十五&#xff09;&#xff08;第46~48集&#xff09; 46. 批量加载 UClass 功能测试批量加载多个同类 UClass 资源 47. 创建单个资源对象测试加载并创建单个 UClass 资源对象 48. 创建同类资源对象 46. 批量加载 UClass 功能 逻…

Web开发4:单元测试

在Web开发中&#xff0c;单元测试是一种重要的开发实践&#xff0c;它可以帮助我们确保代码的质量和可靠性。通过编写和运行单元测试&#xff0c;我们可以验证代码的正确性&#xff0c;减少错误和缺陷&#xff0c;并提高代码的可维护性。本文将介绍单元测试的概念、好处以及如何…

Go后端开发 -- 即时通信系统

Go后端开发 – 即时通信系统 文章目录 Go后端开发 -- 即时通信系统一、即时通信系统1.整体框架介绍2.基础server构建3.用户上线及广播功能4.用户消息广播机制5.用户业务封装6.用户在线查询7.修改用户名8.超时强踢9.私聊功能10.完整代码 二、客户端实现1.建立连接2.命令行解析3.…

蓝桥杯省赛无忧 课件41 选择排序

01 选择排序的思想 02 选择排序的实现 03 例题讲解 #include <iostream> using namespace std; void selectionSort(int arr[], int n) {int i, j, min_index;// 移动未排序数组的边界for (i 0; i < n-1; i) {// 找到未排序的部分中最小元素的索引min_index i;for (…

使用Fiddler进行弱网测试

测试APP、web经常需要用到弱网测试&#xff0c;也就是在信号差、网络慢的情况下进行测试。我们自己平常在使用手机APP时&#xff0c;在地铁、电梯、车库等场景经常会遇到会话中断、超时等情况&#xff0c;这种就属于弱网。 普通的弱网测试可以选择第三方工具对带宽、丢包、延时…

自然语言处理--基于HMM+维特比算法的词性标注

自然语言处理作业2--基于HMM维特比算法的词性标注 一、理论描述 词性标注是一种自然语言处理技术&#xff0c;用于识别文本中每个词的词性&#xff0c;例如名词、动词、形容词等&#xff1b; 词性标注也被称为语法标注或词类消疑&#xff0c;是语料库语言学中将语料库内单词…

面试题之RocketMq

1. RocketMq的组成及各自的作用&#xff1f; 在RocketMq中有四个部分组成&#xff0c;分别是Producer&#xff0c;Consumer&#xff0c;Broker&#xff0c;以及NameServer&#xff0c;类比于生活中的邮局&#xff0c;分别是发信者&#xff0c;收信者&#xff0c;负责暂存&#…

和硕拿下AI Pin代工大单公司 | 百能云芯

和硕公司近日成功中标AI Pin代工大单&#xff0c;AI Pin被认为是继iPhone之后的下一个划时代产品&#xff0c;吸引了全球科技圈的广泛关注。和硕公司对此表示&#xff0c;他们不会只专注于单一客户&#xff0c;而是期望在下半年有更多新品上市&#xff0c;为公司带来丰硕的业绩…

creo草绘3个实例学习笔记

creo草绘3个实例 文章目录 creo草绘3个实例草绘01草绘02草绘03 草绘01 草绘02 草绘03

顺序表的增、删、改、查

小伙伴们好&#xff0c;学完C语言&#xff0c;就要开始学数据结构了&#xff0c;数据结构也是非常重要的&#xff0c;今天我们主要来学习在数据结构中最常用的增删改查操作。话不多说&#xff0c;一起来学习吧 1.数据结构相关概念 1.什么是数据结构&#xff1f; 数据结构是由…