准确率、精确率、召回率、F-measure值、Map

准确率、精确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:

   TP-将正类预测为正类

   FN-将正类预测为负类

   FP-将负类预测为正类

   TN-将负类预测为负类

准确率(Accuracy):

准确度:正例和负例中预测正确数量占总数量的比例,用公式表示:

ACC=\frac{TP+TN}{TP+FP+FN+TN}

精确率(precision):

                                                  \large P=\frac{TP}{TP+FP}

也叫作查准率。即正确预测为正的占全部预测为正的比例。个人理解:真正正确的占所有预测为正的比例,就是你以为的正样本,到底猜对了多少.。

召回率 (recall):

                                                  \large R=\frac{TP}{TP+FN}

也叫作查全率。即正确预测为正的占全部实际为正的比例。个人理解:真正正确的占所有实际为正的比例,就是真正的正样本,到底找出了多少.。

F-Measure是Precision和Recall加权调和平均:

                                            \dpi{150} \large F=\frac{(1+\beta ^2)P \cdot R}{\beta ^2 \cdot P+R}

当      \large \beta =1  的时候 , 则称为 F1。

F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。

                                                              \large F_1=\frac{2PR}{P+R}

在目标检测算法中,当一个检测结果(detection)被认为是True Positive时,需要同时满足下面三个条件:

1,Confidence Score > Confidence Threshold

2,预测类别匹配(match)真实值(Ground truth)的类别

3,预测边界框(Bounding box)的IoU大于设定阈值,如0.5

不满足条件2或条件3,则认为是False Positive。

TP (True Positive):一个正确的检测,检测的IOU ≥ threshold。即预测的边界框(bounding box)中分类正确且边界框坐标正确的数量。

FP (False Positive):一个错误的检测,检测的IOU < threshold。即预测的边界框中分类错误或者边界框坐标不达标的数量,即预测出的所有边界框中除去预测正确的边界框,剩下的边界框的数量。

FN (False Negative):一个没有被检测出来的ground truth。所有没有预测到的边界框的数量,即正确的边界框(ground truth)中除去被预测正确的边界框,剩下的边界框的数量。

Precision (准确率 / 精确率/ 查准率):准确率是模型只找到相关目标的能力,等于TP/(TP+FP)。即模型给出的所有预测结果中命中真实目标的比例。

Recall (召回率、查全率):,召回率是模型找到所有相关目标的能力,等于TP/(TP+FN)。即模型给出的预测结果最多能覆盖多少真实目标。

Precision 分子:目标检测预测出来正确的框,分母:目标检测预测出所有的框   

Recall  分子:目标检测预测出来正确的框,分母就是真实目标的框

Map(Mean Average Precision,平均准确率)

在目标检测任务中,AP(Average Precision,平均精度)是一个重要的评估指标,它综合了Precision(精确率)和Recall(召回率),用于评估模型在不同置信度阈值下的性能。AP值的计算过程如下:

1. 准备数据
  • 预测结果:模型对测试集中的每个图像进行预测,输出每个检测框的类别、置信度分数和边界框坐标。
  • 真实标签:每个图像的真实标注,包括每个物体的类别和边界框坐标。
2. 计算IoU
  • IoU(Intersection over Union,交并比):用于评估预测框和真实框的重合程度。计算公式为:

  • 设定IoU阈值:通常设定一个IoU阈值(如0.5),如果预测框与真实框的IoU大于或等于这个阈值,则认为该预测是正确的(True Positive,TP),否则是错误的(False Positive,FP)。
3. 排序预测结果
  • 按置信度排序:将所有预测结果按照置信度分数从高到低排序。
4. 计算Precision和Recall
  • 初始化计数器:TP(真正例数)、FP(假正例数)和FN(假反例数)。
  • 遍历排序后的预测结果
    • 对于每个预测结果,检查其是否为TP或FP。
    • 更新TP和FP计数器。
    • 计算当前的Precision和Recall,如上图所示
    • 将每个置信度阈值下的Precision和Recall记录下来。
5. 绘制PR曲线
  • PR曲线:以Recall为横轴,Precision为纵轴,绘制PR曲线。

6. 计算AP
  • AP的计算方法:AP值是PR曲线下的面积。常见的计算方法有两种:
    • 11点插值法:在Recall为0, 0.1, 0.2, ..., 1.0的11个点上,计算每个点对应的最高Precision值,然后取这些值的平均。

        所有点插值法:在所有Recall值上,计算每个点对应的最高Precision值,然后对这些值进行积分。

其中R_i是是Recall的值,P(r') 是是在Recall为r'时的Precision值。
7. 计算mAP
  • mAP(Mean Average Precision):对于多类别目标检测任务,计算每个类别的AP值,然后取所有类别的平均值。

  • 其中,N 是类别的总数,AP_i是第 i 个类别的AP值。
总结

AP值通过综合Precision和Recall,提供了对模型在不同置信度阈值下性能的全面评估。mAP则是多类别目标检测任务中常用的综合评估指标,能够反映模型在各个类别上的整体性能。

【参考文献】

准确率、精确率、召回率、F1值、ROC/AUC整理笔记_京局京段蓝白猪的博客-优快云博客_精确度和召回率

准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure)、AUC、ROC的理解_千寻~的博客-优快云博客_准确率

https://www.jianshu.com/p/fd9b1e89f983

目标检测中mAP的计算方法 - 知乎


 



 

<think>好的,我现在需要回答用户关于机器学习中精确范围及其计算方法的问题。首先,我需要确认用户的问题核心是什么。用户提到“精确范围的概念或计算方法”,所以需要明确精确的定义、如何计算,以及它的可能取范围。 首先,精确的定义是什么?根据引用[2],精确是模型预测为正类的样本中实际为正类的比例,计算公式为:精确 = 正确预测的正样本数 / 所有预测为正样本的总数。这个比例的范围应该在0到1之间,因为分子不可能超过分母,所以精确的最小是0,最大是1。这一点需要明确。 接下来,用户可能想知道如何计算精确,尤其是在实际应用中的具体步骤。需要分步骤说明:首先需要构建混淆矩阵,确定真正例(TP)和假正例(FP),然后应用公式计算。例如,如果有100个样本,其中TP=80,FP=20,那么精确就是80/(80+20)=0.8,也就是80%。这个例子可以帮助用户理解计算过程。 然后,关于精确的范围,可能需要讨论极端情况。例如,当所有预测为正类的样本都是正确的时候(即FP=0),精确为1;相反,如果所有预测为正类的样本都是错误的(即TP=0),精确为0。因此,精确的范围确实是[0,1]。 另外,用户可能想知道如何在实际中应用这一指标,比如在分类任务中如何评估模型的表现。可以提到精确通常与召回率结合使用,尤其是在不平衡数据集中,高精确可能意味着模型在预测正类时很谨慎,但可能漏掉很多正类样本。 同时,根据引用[3],混淆矩阵是计算精确的基础,所以需要先明确混淆矩阵的结构,包括TP、FP、TN、FN的定义。用户可能需要了解这些基本概念才能正确计算精确。 可能还需要提到,精确的计算方法在不同工具中的实现,比如在scikit-learn中使用precision_score函数。这可以给用户提供实际的代码示例,帮助他们应用计算方法。例如,使用sklearn.metrics中的precision_score,输入真实标签和预测标签,即可得到精确。 最后,用户的问题可能涉及到精确的局限性,比如在数据不平衡的情况下,精确可能不能全面反映模型性能,因此需要结合其他指标如召回率F1分数来综合评估。这也需要简要提及,以提供更全面的信息。 总结起来,回答的结构应该是:定义精确,给出计算公式,解释范围,提供计算步骤和示例,讨论实际应用中的注意事项,并可能提供代码示例。同时,根据用户提供的引用,需要正确引用相关的文献来源,例如引用[2]和[3]来支持精确的定义和计算方法。</think>### 精确范围的计算方法 #### 1. **精确的定义** 精确(Precision)是机器学习分类任务中的核心评估指标,衡量模型预测为正类的样本中**实际为正类的比例**。其核心公式为: $$ \text{Precision} = \frac{TP}{TP + FP} $$ 其中: - $TP$(True Positive):正确预测的正类样本数 - $FP$(False Positive):错误预测的正类样本数(实际为负类,但被预测为正类)[^2][^3] #### 2. **精确的范围** - **理论范围**:精确的取范围为 $[0, 1]$。 - 当所有预测为正类的样本均为错误时($TP=0$),精确为 $0$; - 当所有预测为正类的样本均为正确时($FP=0$),精确为 $1$。 - **实际意义**:精确越高,模型对正类的预测越可靠。 #### 3. **计算方法步骤** 1. **构建混淆矩阵**: | | 实际为正类 | 实际为负类 | |----------------|------------|------------| | 预测为正类 | TP | FP | | 预测为负类 | FN | TN | 2. **统计TP和FP**: - 通过模型预测结果与真实标签对比,统计被正确分类的正类样本数(TP)和错误分类的正类样本数(FP)。 3. **代入公式计算**: - 例如:若某模型预测正类样本时,TP=80,FP=20,则精确为: $$ \text{Precision} = \frac{80}{80 + 20} = 0.8 \quad (\text{即} \, 80\%) $$ #### 4. **实际应用中的注意事项** - **数据不平衡问题**:若负类样本远多于正类(如欺诈检测),高精确可能掩盖模型对正类的漏检(低召回率),需结合其他指标(如F1分数)分析[^3]。 - **工具实现**:在Python中可直接使用`sklearn.metrics.precision_score`: ```python from sklearn.metrics import precision_score y_true = [1, 0, 1, 1] # 真实标签 y_pred = [1, 0, 0, 1] # 预测标签 precision = precision_score(y_true, y_pred) print(f"精确: {precision:.2f}") # 输出 0.67(TP=2, FP=1) ``` #### 5. **与其他指标的关系** - **召回率(Recall)**:衡量模型捕捉正类的能力,公式为 $\frac{TP}{TP + FN}$。 - **F1分数**:精确召回率的调和平均,公式为 $\frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值