YOLO指标分析

1、精确度

英文(Precision)

是一个衡量模型预测准确率的指标,它关注的是模型预测为正类别(比如检测到的目标)中,有多少是真正正确的。通俗来说,精确率就是"我预测它是目标,它真的是目标的概率"

例如:假设一个监控视频中,我们使用了目标检测模型是否有人进入。在一段时间内,模型预测有10次检测到人,但实际上只有8次是真的有人,2次是误报(比如人影或者树影子为人)。

那么:精确率计算如下:

真正例(TP)=8 (10个人中有8个是正确的)

假正例(FP)=2 (2个人预测是错误的,本来不是人,但是预测为人)

精确率 = TP/TP+FP = 8/10 = 0.8

总结:

这个模型的精确率是0.8,或者说是80%。这意味着模型预测有人进入的是10次中,有8次是正确的。精确率告诉我们模型预测的可靠性。

2、召回率

召回率(Recall),也成为真正例率(True Presion )。是另外一个衡量模型性能的重要指标,它关注的是所有实际为正类别样本中,模型预测正确的比率。通俗来讲,召回率就是所有实际是目标的样本中,我预测对了多少。

这里的术语解释如下:

  • 真正例 (True Positives, TP):模型预测为正类别,实际上也是正类别的样本数量。比如,模型预测某个区域有目标,实际上那个区域确实有目标。
  • 假负例 (False Negatives, FN):模型预测为非正(负)类别,但实际上是正类别的样本数量。比如,模型预测某个区域没有目标,但实际上那个区域确实有目标。

继续使用前面的例子: 假设在一个监控视频中,我们使用目标检测模型来检测是否有人进入。在一段时间内,实际上有10次有人进入,模型预测有8次检测到人。

那么,召回率计算如下:

  • 真正例 (TP) = 8(模型正确预测有人进入的次数)
  • 假负例 (FN) = 2(模型错误预测没有人进入的次数,即漏检)

召回率 (Recall)=8/(8+2)=8/10=0.8

所以,这个模型的召回率是0.8,或者说80%。这意味着在所有实际有人进入的10次中,模型预测对了8次,召回率告诉我们模型捕捉到所有正类别样本的能力。

3、哪个更重要

精确率(Precision)和召回率(Recall)都是评估分类模型性能的重要指标,它们各自衡量的是模型预测的不同方面,因此哪个更重要同样取决于具体的应用场景和业务需求。

  1. 精确率(Precision)

    • 精确率衡量的是模型预测为正类别的样本中,实际为正类别的比例。
    • 高精确率意味着模型预测为正类别的样本中,大多数是正确的,减少了误报(False Positives)。
  2. 召回率(Recall)

    • 召回率衡量的是所有实际为正类别的样本中,模型预测正确的比例。
    • 高召回率意味着模型能够捕捉到大多数实际为正类别的样本,减少了漏检(False Negatives)。

哪个更重要? 这取决于以下几个因素:

  • 业务目标

    • 如果业务目标是减少误报,比如在推荐系统中避免向用户推荐不相关的内容,那么精确率更重要。
    • 如果业务目标是确保不遗漏任何重要信息,比如在医疗诊断中确保不漏诊,那么召回率更重要。
  • 误报和漏检的代价

    • 如果误报的代价很高,比如在安全监控中错误地将正常行为标记为可疑行为,那么精确率更重要。
    • 如果漏检的代价很高,比如在疾病筛查中漏诊患者,那么召回率更重要。
  • 样本分布

    • 如果正样本数量远小于负样本,那么可能需要更关注召回率,以确保不遗漏少数的正样本。
  • 模型用途

    • 在一些需要高置信度的场景,如金融风控,精确率可能更重要。
    • 在一些需要尽可能全面的场景,如安全监控,召回率可能更重要。
  • 用户偏好

    • 用户可能对误报和漏检有不同的容忍度,这会影响精确率和召回率的相对重要性。

在实际应用中,精确率和召回率往往是需要平衡的两个指标。有时候,提高一个指标可能会导致另一个指标下降,这就是所谓的精确率-召回率权衡(Precision-Recall Tradeoff)。在不同的应用场景中,根据业务需求和成本效益分析,来确定精确率和召回率的优先级,并进行相应的模型调整和优化。

简单来说:召回率关注的是减少漏检的能力(不能漏掉的能力)。精确率关注的是减少误报(错误,尽量不要出错)。

4、准确率

准确率(Accuracy)是评估分类模型性能的一个常用指标,它衡量的是模型预测正确的样本占总样本的比例。准确率的计算公式如下:

这里的术语解释如下:

  • 真正例 (True Positives, TP):模型预测为正类别,实际上也是正类别的样本数量。
  • 真负例 (True Negatives, TN):模型预测为负类别,实际上也是负类别的样本数量。
  • 总样本数:包括所有正类别和负类别样本的总数。

用一个简单的例子来说明: 假设在一个数据集中,总共有100个样本,其中有60个正类别样本和40个负类别样本。模型预测结果如下:

  • 正确预测正类别样本:50个(TP)
  • 正确预测负类别样本:35个(TN)
  • 错误预测正类别样本:10个(FP)
  • 错误预测负类别样本:5个(FN)

那么,准确率计算如下: 准确率 (Accuracy)=(50+35)/100=85/100=0.85

所以,这个模型的准确率是85%,意味着模型预测正确的样本占总样本的85%。

准确率是一个直观的指标,但它在某些情况下可能不够全面,特别是当数据集的正负样本分布不均衡时。在这种情况下,可能需要考虑其他指标,如精确率(Precision)、召回率(Recall)和F1分数(F1 Score)等,以更全面地评估模型性能

5、F1-Score

F1-confidence curve(F1置信度曲线)是一种用于展示模型新能的图形工具,它显示了模型的F1分数(F1-score)如何随着置信度阈值的变化而变化。

1、理解坐标轴:

横轴:置信度阈值。这是模型预测结果的置信度,通常以0到1之间表示的值。较低的阈值意味着模型对于预测结果的确定性较低,而较高的阈值意味着对于模型结果确定性较高

纵轴(y)F1分数。f1分数是精确率和召回率的调和平均值,范围从0到1。F1分数越高,表示模型的性能越好

2、曲线趋势

观察曲线的整体趋势。理想情况下,随着置信度的增加,f1的分数值应该先增加后减少,形成一个峰值。这是因为在较低的阈值时,模型可能会产生很多假阳性(FP),而在较高的阈值的时候,可能会错过很多真阳性(TP)

3、寻找最优点

寻找曲线上F1分数最高的点。这个点对应的置信度阈值可以被认为是模型的最佳阈值,因为他在精确率和召回率之间取得了最佳平衡

4、权衡精确率和召回率

如果你关心减少假阳性(提高精确率),你可能会选择一个较高的置信度阈值

如果你更关心捕捉所有的真阳性(提高召回率),你可能会选择一个较低的置信度阈值

5、实际应用

  • 如果曲线在较高的置信度阈值下仍然保持较高的F1分数,这表明模型在高置信度下仍然有很好的性能。
  • 如果曲线在较低的置信度阈值下F1分数迅速下降,这可能表明模型对于低置信度的预测不够准确。

6、PR-cure

显示了在不同分类阈值下模型的精确度(Precision)和召回率(Recall)之间的关系

理论上PR曲线越靠近坐标轴的右上角,模型性能比较好,越能够正确标识正样本,正确分类正样本的Precision越高,而靠近右侧则说明模型正样本的识别能力较差,即召回能力差

PR曲线的特点是随着分类阈值的变化,精确度和召回率会有响应的改变。

通常情况下,当分类模型能够同时保持较高的精确率和召回率时,PR曲线处于较高的位置。

当模型偏向于高精度或者高召回率时,曲线则响应地向低精度或者低召回率的方向移动。PR曲线可以帮助我们评估模型在不同阈值下的性能,并选择适当的阈值来平衡精确度和召回率。

7、如何计算不同阈值下的精确率和召回率

假设我们有一个二分类问题,我们有以下的预测结果和真实标签:

预测值 真实标签
0.9 1
0.8 1
0.7 0
0.6 1
0.5 0
0.4 0
0.3 1
0.2 0
0.1 1
0.0 0

我们将使用不同的置信度阈值来计算精确率和召回率。

步骤1:定义TP, FP, TN, FN

  • 真正例(TP):预测为正,实际也为正。
  • 假正例(FP):预测为正,实际为负。
  • 真负例(TN):预测为负,实际也为负。
  • 假负例(FN):预测为负,实际为正。

步骤2:计算不同阈值下的TP, FP, TN, FN

阈值 = 0.5
  • 预测为正(>0.5):0.9, 0.8, 0.7, 0.6

  • 预测为负(<=0.5):0.5, 0.4, 0.3, 0.2, 0.1, 0.0

  • TP = 3 (0.9, 0.8, 0.6)

  • FP = 1 (0.7)

  • TN = 4 (0.5, 0.4, 0.2, 0.0)

  • FN = 2 (0.3, 0.1)

阈值 = 0.3
  • 预测为正(>0.3):0.9, 0.8, 0.7, 0.6, 0.4, 0.3

  • 预测为负(<=0.3):0.2, 0.1, 0.0

  • TP = 4 (0.9, 0.8, 0.6, 0.3)

  • FP = 2 (0.7, 0.4)

  • TN = 3 (0.2, 0.1, 0.0)

  • FN = 1 (0.1)

步骤3:计算精确率和召回率

阈值 = 0.5
  • 精确率 = TP / (TP + FP) = 3 / (3 + 1) = 0.75
  • 召回率 = TP / (TP + FN) = 3 / (3 + 2) = 0.6
阈值 = 0.3
  • 精确率 = TP / (TP + FP) = 4 / (4 + 2) = 0.6667
  • 召回率 = TP / (TP + FN) = 4 / (4 + 1) = 0.8

步骤4:绘制精确率-召回率曲线

我们可以根据不同阈值下的精确率和召回率绘制曲线。在这个例子中,我们只有两个点,但在实际应用中,我们会使用更多的阈值来得到更平滑的曲线。

步骤5:找到最佳阈值

最佳阈值通常是使F1分数最大化的阈值。F1分数计算如下: F1=2×精确率×召回率精确率+召回率F1=2×精确率+召回率精确率×召回率​

阈值 = 0.5
  • F1 = 2 \times \frac{0.75 \times 0.6}{0.75 + 0.6} = 0.6667
阈值 = 0.3
  • F1 = 2 \times \frac{0.6667 \times 0.8}{0.6667 + 0.8} = 0.7273

在这个例子中,阈值为0.3时的F1分数更高,所以最佳阈值是0.3。

这个例子展示了如何计算不同阈值下的精确率和召回率,并找到最佳阈值。在实际应用中,你可能需要使用更多的数据点和阈值来得到更精确的结果。

相关推荐
szxinmai主板定制专家8 分钟前
【国产NI替代】基于FPGA的4通道电压 250M采样终端边缘计算采集板卡,主控支持龙芯/飞腾
人工智能·边缘计算
是十一月末8 分钟前
Opencv实现图像的腐蚀、膨胀及开、闭运算
人工智能·python·opencv·计算机视觉
云空16 分钟前
《探索PyTorch计算机视觉:原理、应用与实践》
人工智能·pytorch·python·深度学习·计算机视觉
杭杭爸爸17 分钟前
无人直播源码
人工智能·语音识别
Ainnle1 小时前
微软 CEO 萨提亚・纳德拉:回顾过去十年,展望 AI 时代的战略布局
人工智能·microsoft
长风清留扬1 小时前
基于OpenAI Whisper AI模型自动生成视频字幕:全面解析与实战指南
人工智能·神经网络·opencv·计算机视觉·自然语言处理·数据挖掘·whisper
LL.。2 小时前
目标检测——基于yolov8和pyqt的螺栓松动检测系统
yolo·目标检测·pyqt
灰太狼不爱写代码3 小时前
CUDA11.4版本的Pytorch下载
人工智能·pytorch·笔记·python·学习
volcanical5 小时前
Dataset Distillation with Attention Labels for Fine-tuning BERT
人工智能·深度学习·bert
L_cl5 小时前
【NLP 17、NLP的基础——分词】
人工智能·自然语言处理