文章目录
CV — 性能评价指标
对于算法模型的性能指标,看你具体的任务是什么,最基本的分类还是回归。
二分类查全、查准、f1,多分类macro/micro的查全查准f1,
回归主要看代价函数,或者算偏差和方差;
但是具体到某个特定的任务和领域有他自己用的比较多的指标
一、通用的性能评价指标
1. 混淆矩阵
预测值(P) | 预测值(N) | |
---|---|---|
真实值(T) | TP | FN |
真实值(F) | FP | TN |
解释如下
-
字母解释:
- T / F:该样本是否被正确分类
- P / N:该样本原本为正样本还是负样本
-
预测结果解释:
- TP:真正样本。预测为正样本,而且预测对了
- TN:真负样本。预测为负样本,而且预测对了
- FP:假正样本。预测为正样本,但是预测错了(事实上这个为负样本,对应于我们常说的 误检)
- FN:假负样本。预测为负样本,但是预测错了(事实上这个为正样本,对应于我们常说的 漏检)
2. precision / recall
-
指标说明
-
precision:
精度,即查准率
precision = TP / (TP + FP)
预测为正样本,并且确实为正样本 / 所有预测为正样本
指标特点:
偏向于预测准,但是会造成漏检(FN)。
-
recall:
召回率,即查全率
recall = TP / (TP + FN)
预测为正样本,并且确实为正样本 / 实际上所有正样本
指标的特点:
偏向于 预测尽可能不要遗漏,即尽可能覆盖所有的正样本,会造成误检(FP)。
举个例子:对于搜索引擎,为了追求提高 recall,为了覆盖尽可能多的正样本,所有查询结果中会包含比较多的无关信息。
-
-
案例说明
以下举例说明,如何求 precision / recall
如上图所示,蓝色的框是 真实框。绿色和红色的框是 预测框,绿色的框是正样本,红色的框是负样本。(一般来讲,当预测框和真实框IOU>=0.5时,被认为是正样本。)
对于刚开始不知道该如何划分 TP、FP、FN、TN,我这儿可以教大家一个小妙招:- 对于图中标出预测框,是分类器认为的正样本 P (TP + FP) ,所以上图 TP + FP的数量为 4(即两个绿框和两个红框)。进一步确认,TP 是 分类器预测为正样本并且预测对了,所以 TP 为 2 (两个绿框);同理 FP 是分类器预测为正样本但是预测错了,图中解释即分类器画出框了但是画了了,即 误检,所以 FP 为2(两个红框)
- 对于 FN,分类器预测为负样本但是预测错了,在图中可以解释为,真实框我标出来了,分类器认为是负样本没标出来,即分类器 漏检,所以 FN为1(对应于图中下排第2个蓝框真实框没有检出)
综上,precision = TP /(TP + FP)= 1/2
recall = TP /(TP + FN) = 2/3
3. F1-measure
-
解释:
综合 precision 与 recall,当 F-meansure 较高时,precision 与 recall 都较高。
-
计算公式:
F-meansure = 2 / (1/precision + 1/recall ) = 2 * [ precision * recall / (precision + recall)]
4. ROC曲线
5. AP
-
指标说明:
AP(Average Precision):顾名思义AP就是平均精准度,利用不同的Precision和Recall的点的组合,AP 为 PR 曲线与坐标轴围成的面积。
如图所示:
当我们 取不同的置信度,可以获得不同的Precision和不同的Recall,当我们取得置信度够密集的时候,就可以获得非常多的Precision和Recall。此时Precision和Recall可以在图片上画出一条线,这条线下部分的面积就是某个类的AP值。
-
指标特点:
可能对于某一个类别的效果好,但是对于其他的类别效果不好。所以引出下面的 mAP 指标。
6. mAP
-
mAP 指标说明:
mAP(mean Average Precision)
在了解 mAP 之前,我们先了解一下 AP(平均精度),AP 为 P-R曲线下方的面积。
对于多分类问题,AP 指标可能对于某一个类别的效果好,但是对于其他类别的效果并不好,需要考察在所有类别上的平均值,所有引出了 mAP 指标。mAP 把每个类别的 AP 都计算一遍,再取平均值。由此可见, AP 是针对于单类别的,mAP 是针对于所有类别的
-
mAP 算法实现:
借助于:Cartucho/mAP 库。-
库使用说明资料:
https://github.com/Cartucho/mAP
https://github.com/bubbliiiing/count-mAP-txt
https://blog.csdn.net/weixin_44791964/article/details/104695264 -
使用步骤:
-
替换 input 下面的文件,detection-results、ground-truth、images-optional。
-
detection-results:
预测结果的txt。第一个值为类别标签,第二个值为置信度,后面的值为bounding box左上角和右下角的坐标
-
ground-truth:
真实框的标注信息。第一个值为标注的类别标签,后面值为标注框左上角和右下角的坐标。
-
images-optional:
图片文件,方便进行可视化,可以没有这个文件。
-
-
准备好以上文件之后,直接运行 main.py 文件即可。
-
-
二、目标检测领域
1. IoU
- 指标说明
IoU:预测框和真实框的交集 / 预测框与真实框的并集
IoU的取值范围为:[0,1],衡量bounding box是否准的指标。
当预测框与真实框重叠时,IoU=1
- 指标计算:
参考我的另外一篇博客:https://blog.csdn.net/pentiumCM/article/details/109962380