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

通俗易懂理解精确率、准确率、召回率、F1值

温故而知新,可以为师矣!

一、参考资料

分类问题的评价指标:多分类【Precision、 micro-P、macro-P】、【Recall、micro-R、macro-R】、【F1、 micro-F1、macro-F1】

目标检测评估指标mAP:从Precision,Recall,到AP50-95【未完待续】

利用mAP评估目标检测模型

万字长文精解目标检测中的TP、FP、FN、TN、Precision、Recall 、 F1 Score、AP、mAP与AR 。附代码实现。

AP和mAP 计算:sklearn.metrics.average_precision_score()

精准,召回和 F-measures

精确率、准确率、召回率、F1 值的区分与记忆方法-CSDN博客

二、精确率、准确率、召回率和 F1 值

在机器学习和数据挖掘领域,精确率、准确率、召回率和 F1 值是评估模型性能的重要指标。

混淆矩阵

在理解这些指标前,需先了解混淆矩阵,它是计算各指标的基础。以二分类问题为例,混淆矩阵包含四个类别,这些类别构成了后续所有评估指标计算的基石:

  • 真正例(True Positive,TP):模型预测为正例,实际也为正例。例如在垃圾邮件分类中,模型判断某封邮件是垃圾邮件,且该邮件确实是垃圾邮件,这种情况就属于真正例。

  • 假正例(False Positive,FP):模型预测为正例,但实际为负例。继续以垃圾邮件分类来说,若模型将一封正常邮件误判为垃圾邮件,这封邮件就被统计为假正例。

  • 真负例(True Negative,TN):模型预测为负例,实际也为负例。即模型判断某封邮件不是垃圾邮件,且该邮件确实为正常邮件,这便是真负例。

  • 假负例(False Negative,FN):模型预测为负例,但实际为正例。比如模型把一封垃圾邮件错误地判断为正常邮件,该邮件就属于假负例。

可以通过以下表格更直观地呈现混淆矩阵的结构:

预测结果 \ 实际结果正例负例
正例真正例(TP)假正例(FP)
负例假负例(FN)真负例(TN)

精确率(Precision)

精确率表示模型预测为正例的样本中,真正为正例的比例,反映模型预测正例的准确性。其计算公式为:
P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP + FP}Precision=TP+FPTP
举例来说,在一个新闻分类模型中,模型判定有 200 篇新闻为 “财经类新闻”,但实际上其中只有 160 篇确实属于财经类,那么该模型在财经类新闻预测上的精确率为160 ÷ 200 = 0.8 160 \div 200 = 0.8160÷200=0.8。这表明,当模型做出财经类新闻的预测时,有 80% 的可能性是准确的。精确率高意味着模型在预测正例时更加 “精准”,减少了误判的情况。在一些对预测准确性要求极高的场景,如医疗诊断中的疾病阳性判断,高精确率可以避免对患者进行不必要的进一步检查或治疗,降低误诊带来的风险和成本。

准确率(Accuracy)

准确率是模型预测正确的样本占总样本的比例,计算公式为:
A c c u r a c y = T P + T N T P + F P + T N + F N Accuracy = \frac{TP + TN}{TP + FP + TN + FN}Accuracy=TP+FP+TN+FNTP+TN
假设一个手写数字识别模型对 1000 个数字图像进行识别,其中正确识别出了 920 个数字,那么该模型的准确率为920 ÷ 1000 = 0.92 920 \div 1000 = 0.92920÷1000=0.92。这体现了模型在整体预测任务中的准确程度。然而,准确率存在一个明显的局限性,当正负样本分布不均衡时,它可能无法真实反映模型的性能。例如在罕见疾病检测中,假设某疾病在人群中的发病率仅为 1%,如果模型将所有样本都预测为 “无病”,那么仅从准确率来看,模型的准确率会高达 99%,但实际上该模型完全无法识别出患病样本,没有任何实用价值。所以在样本不均衡的情况下,不能单纯依靠准确率来评估模型。

召回率(Recall)

召回率也称灵敏度、真正例率,指实际为正例的样本中,被模型正确预测为正例的比例,用于衡量模型对正例的识别能力。其计算公式为:
R e c a l l = T P T P + F N Recall = \frac{TP}{TP + FN}Recall=TP+FNTP
例如在癌症早期筛查中,实际有 100 名癌症患者,某筛查模型成功检测出了 85 名,那么该模型的召回率为85 ÷ 100 = 0.85 85 \div 100 = 0.8585÷100=0.85,这说明模型在所有真正的癌症患者中,成功识别出了 85%。召回率高表示模型能够尽可能多地找出实际的正例样本,避免遗漏。在诸如灾难预警、犯罪预测等场景中,高召回率至关重要,因为漏判(假负例)可能会导致严重的后果,即使可能会产生一些误判(假正例),也要优先保证尽可能多的潜在风险被识别出来。召回率的提升意味着可以检测出更多的目标,检出率提高。

F1 值

F1 值是精确率和召回率的调和平均数,综合反映模型性能。当精确率和召回率都高时,F1 值才会高。其计算公式为:
F 1 = 2 × P r e c i s i o n × A c c u r a c y P r e c i s i o n + A c c u r a c y F1 = 2 × \frac{Precision × Accuracy}{Precision + Accuracy}F1=2×Precision+AccuracyPrecision×Accuracy
F1 值的引入是为了平衡精确率和召回率这两个指标。因为在实际应用中,精确率和召回率往往是相互制约的关系。例如在广告投放系统中,提高精确率可能会导致召回率下降(为了确保推荐的广告更精准,会减少广告投放的范围,从而遗漏部分潜在客户),反之亦然。而 F1 值能够综合考虑这两个指标,给出一个更全面的评估。当 F1 值较高时,说明模型在预测正例的准确性和对正例的识别能力上都表现良好,避免了单纯依赖精确率或召回率带来的片面性评估。

简单示例

假设有一个目标检测模型,其在测试集上的预测结果如下:

正确预测为正样本数量(TP):100

错误预测为正样本数量(FP):20

错误预测为负样本数量(FN):30

那么,该模型的精确率和召回率分别为:
P r e c i s i o n = 100 100 + 20 = 0.8333 Precision = \frac{100}{100 + 20} = 0.8333Precision=100+20100=0.8333

R e c a l l = 100 100 + 30 = 0.7692 Recall = \frac{100}{100 + 30} = 0.7692Recall=100+30100=0.7692

三、区分要点

精确率关注预测结果:精确率聚焦于模型预测为正例的这部分样本,重点考察其中真正正确的比例,核心在于体现模型预测正例时的 “精准性”。例如在商品推荐系统中,如果精确率低,用户会看到大量不感兴趣的商品推荐,影响购物体验;而精确率高,则推荐的商品大多是用户可能感兴趣的,能有效提高用户的点击率和购买意愿。

准确率关注整体预测:准确率考量的是模型在所有样本上的预测正确程度,涵盖了正例和负例的预测情况。但它受正负样本分布的影响极大,在样本不均衡的场景下,可能会掩盖模型在关键类别(如少数类)上的糟糕表现,无法准确反映模型的真实性能。例如在预测罕见故障的系统中,即便模型将大量正常情况预测正确,但只要在罕见故障的预测上频频失误,低的召回率和精确率会导致模型实际可用性差,而高准确率可能会误导对模型性能的判断。

召回率关注实际样本:召回率侧重于评估模型从所有实际正例样本中找出正例的能力,强调的是对正例的 “完整性” 捕捉。以搜索引擎为例,召回率低意味着用户搜索某些关键词时,会遗漏很多相关的重要网页,影响搜索体验;而召回率高则能尽可能全面地呈现相关内容,满足用户需求。

F1 值平衡两者:F1 值通过调和平均数的计算方式,将精确率和召回率结合起来,为模型性能提供一个平衡的评估指标。在实际项目中,根据不同的业务需求,可能会对精确率和召回率有不同的侧重,但 F1 值能够在两者之间找到一个相对合理的平衡点,更客观地反映模型的综合表现。

FP vs. FN

False Negatives(FN) 漏检:正例未检出,即正例被预测为负例。在目标检测中,FN可以指未能检测出实际存在的目标的情况。

False Positives(FP) 误检:负例被误检为正例。在目标检测中,FP可以指错误地将背景或非目标识别为目标的情况。

mAP vs. mAR

精确率和召回率的计算可以针对每个类别分别进行,也可以在所有类别上进行平均,得到平均精确率(mAP)和平均召回率(mAR)。

http://www.cnnetsun.cn/news/3690610.html

相关文章:

  • 探索gh_mirrors/mov/movies:相似电影推荐功能的设计与实现
  • 终极指南:phpMyFAQ开源知识库系统的完整部署与应用实践
  • 微信机器人智能对话引擎:集成大语言模型(LLM)的中间件设计
  • 如何用AI自动处理发票与费用报销?从OCR识别到审批和异常检测
  • LangGraph vs CrewAI vs AutoGen:2026多Agent开发框架横评
  • 大模型应用开发岗位火爆!小白程序员必看,收藏学习路径助你抓住AI风口!
  • VisualCppRedist AIO:终极解决方案,一键修复Windows软件运行库问题
  • 5分钟创建专业短视频:MoneyPrinterTurbo终极AI视频生成指南
  • Apache Gluten终极指南:让JVM SQL引擎性能飙升的原生执行方案
  • 终极指南:Playlist-AutoUpdater如何实现M3U播放列表每日自动更新?
  • Path of Building PoE2终极指南:告别盲目构建,用数据打造最强角色
  • OpenArk内核驱动加载问题深度解析:从入门到精通的Windows反Rootkit工具实战指南
  • 如何安装BeautifulDiscord?3分钟快速上手教程
  • 如何快速提升学术论文质量:研究者的完整写作框架指南
  • 从入门到精通:PyTorch Geometric图神经网络实战完全指南
  • 贡献你的声音:如何为heylinda-app录制冥想音频,成为开源项目的一部分
  • JAVA毕设项目:基于SpringBoot的体育资源数字化预约管控系统设计 场馆预约排班与用户评价管理系统 (源码+文档,讲解、调试运行,定制等)
  • OpCore-Simplify:让普通PC安装macOS变得像搭积木一样简单
  • PDF补丁丁:开源免费的PDF文档处理终极指南,轻松解决PDF编辑难题
  • 计算机JAVA毕设实战-基于 SpringBoot+Vue 的手袋生产物料管控系统 手袋厂原材料采购与成品仓储管理平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 构建自主AI伴侣系统:AIRI开源框架技术深度解析
  • 巧用Trace ID与Span:Java分布式系统故障排查实战
  • 单细胞测序告诉你有哪些细胞,谁来告诉你它们在哪里?
  • 碧蓝幻想Relink战斗数据分析神器:GBFR-Logs完全指南,5分钟掌握你的真实伤害!
  • AI写作接单平台避坑指南,2024最新佣金结构深度对比:这3个平台已悄然提高抽成至42%
  • LP8555 LED背光驱动芯片寄存器配置与PCB布局实战指南
  • MATLAB小波变换图像融合实战指南
  • 新手必看:parboiled2常见错误与调试技巧
  • 新手必看!2026表单小程序开发哪个公司好?
  • WQFN封装芯片PCB布局与焊接工艺全解析:以LM27965为例