news 2026/7/27 18:24:57

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通俗易懂理解精确率、准确率、召回率、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)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/27 18:24:26

探索gh_mirrors/mov/movies:相似电影推荐功能的设计与实现

探索gh_mirrors/mov/movies:相似电影推荐功能的设计与实现 【免费下载链接】movies 项目地址: https://gitcode.com/gh_mirrors/mov/movies gh_mirrors/mov/movies是一个专注于电影推荐的iOS应用项目,其核心功能之一是相似电影推荐系统。该功能能…

作者头像 李华
网站建设 2026/7/27 18:23:34

终极指南:phpMyFAQ开源知识库系统的完整部署与应用实践

终极指南:phpMyFAQ开源知识库系统的完整部署与应用实践 【免费下载链接】phpMyFAQ phpMyFAQ - Open Source FAQ web application for PHP 8.3 and MySQL, PostgreSQL and other databases 项目地址: https://gitcode.com/gh_mirrors/ph/phpMyFAQ phpMyFAQ是一…

作者头像 李华
网站建设 2026/7/27 18:22:18

微信机器人智能对话引擎:集成大语言模型(LLM)的中间件设计

随着生成式AI的普及,将大语言模型(如ChatGPT、Claude或国内开源大模型)与微信自动化接口相结合,打造24小时全自动智能客服、社群助手已经成为主流趋势。本文将剖析如何编写一个高效的中间件,将接收到的微信文本无缝转发…

作者头像 李华
网站建设 2026/7/27 18:22:03

如何用AI自动处理发票与费用报销?从OCR识别到审批和异常检测

文章摘要 发票自动化不是把图片OCR成文字就结束。真正可用的系统需要完成:邮件或表单收票、字段和明细提取、供应商与订单匹配、税额和金额校验、重复发票识别、预算与权限检查、人工复核、审批、入账、归档和审计。 本文以“供应商发票报销流程”为案例&#xff…

作者头像 李华
网站建设 2026/7/27 18:22:01

LangGraph vs CrewAI vs AutoGen:2026多Agent开发框架横评

文章摘要 当一个Agent无法稳定完成复杂任务时,开发者往往会拆成规划、研究、执行、审核和发布多个角色。但“多Agent”并不等于让几个模型自由聊天。生产系统需要状态、路由、终止条件、人工审批、重试、持久化、追踪和成本控制。 本文使用同一套“市场研究报告Ag…

作者头像 李华