当前位置: 首页 > news >正文

混淆矩阵(Confusion Matrix);归一化混淆矩阵(Confusion Matrix Normalized)

 ---------------------------------------------------------------------------------------

图片中文名称

  1. 第一张图片:混淆矩阵(Confusion Matrix)

  2. 第二张图片:归一化混淆矩阵(Confusion Matrix Normalized)

相同点和不同点

相同点:
  1. 结构:两张图片都是混淆矩阵,展示了模型预测结果与真实标签之间的关系。

  2. 标签:两张图片的行和列标签相同,都是不同的类别名称,如“bottle”、“calculator”等。

  3. 对角线元素:对角线上的值表示正确分类的数量或比例,两张图中这些值是一致的。

不同点:
  1. 数值表示

    • 第一张图显示的是绝对数量,即每个类别被正确或错误分类的次数。

    • 第二张图显示的是归一化后的比例,即每个类别被正确或错误分类的比例

  2. 颜色深浅

    • 第一张图中颜色深浅  表示数量的多少,颜色越深表示数量越多。

    • 第二张图中颜色深浅  表示比例的大小,颜色越深表示比例越高。

图片解释

第一张图片(混淆矩阵)
  • 用途:用于展示分类模型的性能,特别是模型在不同类别上的分类准确性。

  • 解读

    • 对角线上的值(如“bottle”类别的29,表示29个“bottle”被正确分类)表示模型正确分类的数量。

    • 非对角线上的值表示分类错误的数量,例如“bottle”被错误分类为“calculator”的数量为37。

    • 颜色越深表示数量越多,帮助快速识别分类错误的模式

第二张图片(归一化混淆矩阵)
  • 用途:用于更直观地展示每个类别的分类准确性,特别是当类别样本数量不均衡时。

  • 解读

    • 对角线上的值(如“bottle”类别的0.97)表示该类别的分类准确率

    • 非对角线上的值表示分类错误的比例,例如“bottle”被错误分类为“calculator”的比例为0.04

    • 颜色越深表示比例越高,帮助快速识别分类错误的模式。

通过这两张图,可以更全面地了解模型在不同类别上的分类性能,特别是识别出哪些类别容易被误分类,从而指导模型的进一步优化。

-------------------------------------------------------------------------------

精确率表示模型的准确性:预测为正的结果中有多少是真的。例如模型检出了10个物体,其中8个真的是目标、另外2个是误报,则Precision=80%。这是什么意思呢?

您对 精确率(Precision) 的理解完全正确!以下是更详细的解释和补充说明,帮助您彻底掌握这一概念:


精确率的定义

精确率(Precision) 衡量的是模型预测为“正类”(Positive)的结果中,有多少是真实的正类。其计算公式为:

Precision=真正例(True Positives, TP)真正例(TP) + 假正例(False Positives, FP)Precision=真正例(TP) + 假正例(False Positives, FP)真正例(True Positives, TP)​

  • 真正例(TP):模型正确预测为正的样本(确实是目标)。

  • 假正例(FP):模型错误预测为正的样本(实际不是目标,误报)。


您的例子解析

假设模型检测出 10 个物体

  • 8 个是真实目标(TP = 8)

  • 2 个是误报(FP = 2)

则精确率为:

Precision=88+2=80%Precision=8+28​=80%

含义:模型给出的所有“正类”预测中,80% 是准确的,剩余 20% 是噪声或错误。


直观场景对比

场景 1(高精确率)
  • 模型检测 5 个物体,全部是真实目标(TP=5, FP=0)。

  • Precision = 100%
    ✅ 适用于零容忍误报的场景(如医疗诊断)。

场景 2(低精确率)
  • 模型检测 20 个物体,其中 10 个是真实目标(TP=10, FP=10)。

  • Precision = 50%
    ❌ 大量误报,需进一步筛选(如垃圾邮件过滤)。


与召回率(Recall)的区别

  • 精确率:关注 预测结果的质量(“宁缺毋滥”)。

  • 召回率(Recall):关注 找出所有真实目标的能力(“宁可错杀”),计算为:

    Recall=TPTP+假负例(False Negatives, FN)Recall=TP+假负例(False Negatives, FN)TP​

    (FN 是漏检的真实目标)。


实际应用中的权衡

  • 高精确率 + 低召回率:模型保守,只预测高置信度目标(减少误报,但可能漏检)。

  • 低精确率 + 高召回率:模型激进,检测更多目标(减少漏检,但误报增多)。

平衡方法

  • 调整分类阈值(如 YOLO 中的 conf 参数)。

  • 使用 F1 Score(精确率和召回率的调和平均)。


在 YOLO 中的体现

python

from ultralytics import YOLOmodel = YOLO("yolov8n.pt")
results = model.predict(source="image.jpg", conf=0.5)  # 调整置信度阈值
  • 提高 conf → 精确率上升(预测更严格),召回率可能下降。

  • 降低 conf → 召回率上升(检测更多目标),精确率可能下降。


总结

您的例子完美展示了精确率的本质:模型预测为正类的可靠性。在实际项目中,需结合召回率共同优化,才能达到最佳效果!

confusion_matrix.png

PNG 173.31KB

confusion_matrix_normalized.png

PNG 223.28KB

横坐标和纵坐标,哪一个是真实的,哪一个被预测的呢?

在混淆矩阵(Confusion Matrix)中,横坐标(列)通常表示模型的预测结果(Predicted),而纵坐标(行)表示真实的标签(Actual/Ground Truth)。这是机器学习中的标准表示方式(但需注意个别文献或工具可能相反,需结合上下文确认)。


针对您提供的混淆矩阵的分析

1. 非归一化矩阵(confusion_matrix.png)
  • 结构问题:您的表格未明确标注行列含义,但通过内容可推测:

    • 左侧列(如 bottle - | 29)可能是真实标签(Actual)。

    • 右侧数值可能是模型预测为该类的次数(Predicted)。

    • 例如:真实标签为 bottle 的样本中,模型正确预测了 29 次,但也可能被误预测为其他类别(如 background)。

2. 归一化矩阵(confusion_matrix_normalized.png)
  • 数值范围(0~1):表示预测的准确率或比例。

    • 例如 bottle - 0.97 表示真实为 bottle 的样本中,97% 被模型正确预测。

    • 低值(如 clock - 0.02)表示模型对该类别的识别能力较差。


如何验证行列含义?

  1. 对角线元素

    • 混淆矩阵的对角线(从左上到右下)通常表示 正确预测(TP)。

    • bottle 的真实标签对应预测值 0.97(高值),则进一步支持纵轴是 Actual。

  2. 非对角线元素

    • 其他位置的数值表示 误分类(如真实为 bottle 但预测为 background)。


标准混淆矩阵示例

Predicted: APredicted: B
Actual: ATP (A→A)FP (A→B)
Actual: BFN (B→A)TN (B→B)
  • 在您的数据中,bottle - 0.97 类似 A→A(TP),而 bottle - 0.03 类似 A→其他类(FP)。


总结

  • 纵轴(行) = 真实标签(Actual)

  • 横轴(列) = 预测结果(Predicted)

建议:若数据来自 Ultralytics YOLO,可通过其文档或可视化工具(如 val.py 生成的矩阵)确认行列标注。

http://www.xdnf.cn/news/222265.html

相关文章:

  • Mac配置Maven环境变量避坑
  • 无人机航拍牛羊检测数据集VOC+YOLO格式1021张3类别小目标
  • ROS2 学习
  • c#WebsocketSever
  • 浅析通用文字识别技术在档案管理中的未来发展趋势
  • 4. python3基本数据类型
  • 指针变量存放在哪?
  • 深度学习·经典模型·SwinTransformer
  • ISME|原生生物,顶刊是如何研究的
  • 网工笔记-传输层
  • 插值算法 - 双三次插值(Bicubic Interpolation)
  • 【无标题】四色定理研究团队的构建与实施路径——跨学科建模、编程与理论拓展的全流程方案
  • 实现一个简单回调列表
  • 代理对象的mock
  • 数据库所有知识
  • 随机游走之 个人的简单理解
  • 通义千问Qwen3全维度解析
  • Windows系统下,导入运行 RuoYi-Vue3 项目
  • 批量打印工具使用全攻略
  • 深度循环神经网络
  • 链表反转操作经典问题详解
  • python之数字类型的操作
  • 【linux网络】网络基础概念
  • 从零构建Dagster分区管道:时间+类别分区实战案例
  • 企业的AI转型:生死时速的进化之路
  • 再学GPIO(三)
  • 系统设计中三高指什么
  • OpenGL学习笔记(PBR)
  • LayerSkip: Enabling Early Exit Inference and Self-Speculative Decoding
  • 大模型与MCP:重塑AI应用的新篇章