一分钟搞懂精度,错误率、查准率、查全率

机器学习入门的第一个令人头大的概念区分关卡,就是什么乱七八糟的数据的判断的各种率。简直太影响学习的心情了有没有。

在看了几篇大佬的博客后,作者才终于慢慢的领悟了。(吐血)

现在,让我们有请本次的调查对象——李大爷!(欢呼声)
当然,不是一个,是一堆!一堆李大爷!(欢呼声)
这堆李大爷有好人也有坏人
假设,我们现在有了一套算法来预判好大爷坏大爷,这个预判的结果呢,有几个指标,分别是:
1.精度:让你给判断对了的大爷在所有大爷中的比例;(大爷欣慰)
2.错误率:让你给判断错了的大爷在所有大爷中的比例;(大爷骂娘)
3.查准率(precision):你判断对了的好大爷占你以为的好大爷的比例;
4.查全率(recall):你判断对了的好大爷占所有好大爷的比例。

看到这,你可能还是一脸懵逼,甚至还想骂人——“你大爷的”。
别急,我们来看一张神奇的图图:

在这里插入图片描述
在这张图里,我们见到了四个判断结果,分别是:TP,FN、FP、TN。
这几个瘪犊子是啥意思呢?
来看,他们其实是T,P,F,和N的组合,T代表判断对了,F代表判断错了,P代表认为是对的,N代表认为是错的。所以他们的通俗意思就是:
1.TP:你认为这几个大爷是好大爷,判断对了!——他们确实是好大爷。
2.FN:你认为这几个大爷是坏大爷,判断错了!——他们实际上是好大爷。
3.FP:你认为这几个大爷是好大爷,判断错了!——他们不是好大爷,是坏大爷。
4.TN:你认为这几个大爷是坏大爷,判断对了!——你找出来了坏大爷。(好棒棒)

这下是不是有些通透了?

那我们对照着前面我们给的定义来看这几个率:
1.精度:让你给判断对了的大爷在所有大爷中的比例:
是不是就可以表示为TP+TN/TP+FN+FP+TN呢?
2.错误率:让你给判断错了的大爷在所有大爷中的比例:
是不是就可以表示为FN+FP/TP+FN+FP+TN呢?
3.查准率(precision):你判断对了的好大爷你以为的好大爷的比例:
在这里插入图片描述
对吧?(体现一个“准”字)
4.查全率(recall):你判断对了的好大爷所有好大爷的比例。
在这里插入图片描述
这不就定了嘛?(体现了一个“全”字)

(大爷们接受完你的调查,终于可以骂骂咧咧的和老伴回家吃饭去了)

参考文献
[1] 周志华 《机器学习》

欢迎大家评论和指正,谢谢了您嘞。

### YOLO 模型中的查全率 (Recall) 和 查准率 (Precision) YOLO(You Only Look Once)是一种实时目标检测算法,其性能通常通过多种评估指标来衡量,其中就包括查全率(Recall)和查准率(Precision)。以下是关于这两种指标在 YOLO 中的计算方法及其关系。 #### 1. **查全率 (Recall)** 查全率表示模型能够成功检测到的目标数量占实际总目标数量的比例。对于 YOLO 而言,它可以通过以下公式计算: \[ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}} \] - True Positives (TP): 模型正确检测并分类为目标的数量。 - False Negatives (FN): 实际上存在但被模型漏检的目标数量。 在目标检测场景下,只有当预测框与真实框之间的交并比(IoU, Intersection over Union)超过某个阈值(通常是0.5),并且类别的置信度满足条件时,才认为是一个真阳性[^2]。 #### 2. **查准率 (Precision)** 查准率反映了模型检测结果中真正阳性的比例,用于衡量检测的准确性。其定义如下: \[ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}} \] - False Positives (FP): 模型错误地将背景或其他物体标记为目标的情况。 同样,在目标检测任务中,只有 IoU 达到设定标准且类别匹配的情况下才会被认为是 TP,否则会被视为 FP 或 FN[^3]。 #### 3. **两者的关系** 查全率查准率之间往往存在一种权衡关系:提高其中一个可能会降低另一个的表现。例如,如果放宽检测阈值,则可以增加检测到的对象数目从而提升 Recall,但这同时也可能引入更多误报导致 Precision 下降;反之亦然。因此,在评价像 YOLO 这样的多标签分类器或者对象探测器的整体效能时常会绘制 PR 曲线,并进一步计算 F-measure 来综合考量这两方面表现[^1]。 F-Measure 是基于 Precision 和 Recall 的调和均值得出的一个单一数值评分体系,具体表达式为: \[ F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \] 这提供了一种平衡两种测量方式的有效手段。 ```python def calculate_precision_recall(tp, fp, fn): precision = tp / (tp + fp) if (tp + fp) != 0 else 0 recall = tp / (tp + fn) if (tp + fn) != 0 else 0 f1_score = 2 * ((precision * recall) / (precision + recall)) if (precision + recall) != 0 else 0 return precision, recall, f1_score ``` 上述代码片段展示了如何依据给定的真实正例数、假正例数以及假负例数来分别求得 Precision、Recall 及最终的 F1-Score 值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值