转载——神经网络中mAP相关概念

本文详细介绍了mAP(均值平均精度)的概念及其在目标检测中的应用,包括正例与负例的定义,准确率(P)与召回率(R)的计算方式,以及AP(平均精确度)的含义。同时,深入解析了P-R曲线,阐述了精度与召回率之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.youkuaiyun.com/shuiyixin/article/details/86349643

目录

一、mAP相关概念

1、正例与负例

2、P(准确率)

3、R(召回率)

4、AP(平均精确度)

二、mAP

1、mAP简介

2、P—R曲线

一、mAP相关概念

首先要给大家介绍几个常见的模型评价术语,

1、正例与负例

现在假设我们的分类目标只有两类,计为正例(positive)和负例(negtive),然后我们就能得到如下的四种情况:

(1)True positives(TP):  被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);

(2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

(3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

(4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

2、P(准确率)

P 代表 precision,即准确率,准确率表示预测样本中实际正样本数占所有正样本数的比例,计算公式为:

准确率 = 预测样本中实际正样本数 / 所有的正样本数

precision = TP/(TP+FP)

3、R(召回率)

R 代表 recall ,即召回率,召回率表示预测样本中实际正样本数占所有预测的样本的比例,计算公式为:  

召回率 = 预测样本中实际正样本数 / 预测的样本数

Recall = TP/(TP+FN)=TP/P

一般来说,召回率越高,准确率越低

4、AP(平均精确度)

AP 代表  Average Precision,即平均精确度。

二、mAP

1、mAP简介

mAP 是 Mean Average Precision  的缩写,即 均值平均精度。作为 object dection 中衡量检测精度的指标。计算公式为:

mAP = 所有类别的平均精度求和除以所有类别

2、P—R曲线

P-R曲线,顾名思义,就是P-R的关系曲线图,表示了召回率和准确率之间的关系;我们可以在坐标系上做以 precisionrecall 作为 纵、横轴坐标 的二维曲线。

上图就是一个P-R曲线的例子,通过这几个例子,我们能够发现一个规律:精度越高,召回率越低,当召回达到1时,对应概率分数最低的正样本,这个时候正样本数量除以所有大于等于该阈值的样本数量就是最低的精度值。

 

### 平均精确率均值 (mAP) 的定义与计算 #### mAP 的基本概念 平均精确率均值(mean Average Precision,mAP)是一种广泛应用于目标检测和图像分类任务中的评估指标。它综合考虑了模型预测的精度和召回能力,能够更全面地反映模型的表现[^3]。 #### AP 的计算过程 为了更好地理解 mAP,需先了解其组成部分——Average Precision (AP),即平均精确率。对于某一类别而言,AP 是通过绘制 Precision-Recall 曲线并计算曲线下的面积得到的。Precision 和 Recall 的定义如下: - **Precision** 表示在所有被预测为正类别的样本中,实际为正类别的比例。 \[ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}} \] - **Recall** 表示在所有真实为正类别的样本中,被正确预测的比例。 \[ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}} \] 通过对不同阈值下 Precision 和 Recall 值的变化进行插值处理,最终可获得该类别的 AP 值。 #### mAP 的计算方式 当面对多类别问题时,mAP 则是对各个类别的 AP 取平均值得到的结果。具体来说,假设共有 \(N\) 类,则有: \[ \text{mAP} = \frac{1}{N} \sum_{i=1}^{N} \text{AP}_i \] 其中,\( \text{AP}_i \) 表示第 \( i \) 类别的平均精确率。 以下是基于 Python 实现的一个简单代码片段用于演示如何计算单个类别的 AP: ```python def compute_ap(recalls, precisions): """Compute the average precision from given recalls and precisions.""" # Append sentinel values at the end. recalls = np.concatenate(([0.], recalls, [1.])) precisions = np.concatenate(([0.], precisions, [0.])) # Ensure descending order of recall values. for i in range(len(precisions) - 1, 0, -1): precisions[i - 1] = max(precisions[i - 1], precisions[i]) # Compute area under PR curve using trapezoidal rule. indices = np.where(recalls[1:] != recalls[:-1])[0] ap = np.sum((recalls[indices + 1] - recalls[indices]) * precisions[indices + 1]) return ap # Example usage: precisions = [0.9, 0.8, 0.7, 0.6] recalls = [0.1, 0.3, 0.5, 0.7] ap_value = compute_ap(np.array(recalls), np.array(precisions)) print(f"Computed AP value: {ap_value}") ``` 最后,要获取整体的 mAP 需重复上述步骤针对每一类别分别求得各自的 AP 后再取平均即可完成整个流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值