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

机器学习中三个是基础的指标:​准确率 (Accuracy)​、精确率 (Precision)​​ 和 ​召回率 (Recall)​

我每天都会大量地使用AI,但对一些AI的基础概念比较模糊。为了更好地用好AI,近期在对AI的一些基础知识稍微作了一些较深入的理解和学习,借这个平台,作一些记录,顺便也分享给大家,欢迎大家一起交流。

今天,我们就来来详细解析机器学习中这三个最基础且重要的评估指标:准确率 (Accuracy)精确率 (Precision)召回率 (Recall)

理解它们的关键在于区分看待预测结果的不同视角。我们先从一个最经典的例子——疾病检测入手。

假设我们有一个用于诊断某种疾病的模型,现在我们在一个测试集上运行它,结果可以用一个混淆矩阵 (Confusion Matrix) 来概括:

维度实际患病 (Positive)实际健康 (Negative)
预测患病 (Positive)有病 (True Positive, TP)误诊 (False Positive, FP)
预测健康 (Negative)漏诊 (False Negative, FN)健康 (True Negative, TN)

1. 准确率 (Accuracy)

  • 定义所有预测正确的样本数总样本数的比例。
  • 公式
    Accuracy = (TP + TN) / (TP + TN + FP + FN)
  • 理解:顾名思义,它衡量的是模型整体的“正确率”。它是一个非常直观的宏观指标。
  • 优点与局限
    • 优点:在各类别分布均衡(比如健康人和病人数量差不多)时,它是一个很好的综合性指标。
    • 缺点在类别不平衡的数据集中,准确率会严重失真
      • 例子:假设一个城市有1000人,其中只有10人(1%)真正患病。如果一个模型非常“懒”,简单地把所有1000人都预测为健康(相当于漏诊10人),那么它的混淆矩阵是:
        • TP=0, FP=0, FN=10, TN=990
        • Accuracy = (0 + 990) / 1000 = 99%
      • 这个99%的准确率看起来非常高,但实际上这个模型连一个病人都没找出来!它是一个完全无用的模型。因此,在类似疾病检测、欺诈识别这种类别极不平衡的场景下,准确率基本没有参考价值,必须看精确率和召回率。

2. 精确率 (Precision) - 又称“查准率”

  • 定义:在所有被模型预测为患病(Positive) 的人中,有多少是真正患病的。
  • 公式
    Precision = TP / (TP + FP)
  • 理解:它关注的是预测结果的质量。一个高精确率的模型意味着它非常“精准”,它说某人有病,那么此人很可能真的有病。它惩罚的是“误诊”(False Positive),也就是 “宁纵勿枉”
  • 应用场景:当误判成本(False Positive)很高时,我们需要高精确率。
    • 例子
      1. 垃圾邮件检测:如果模型将一封重要工作邮件误判为垃圾邮件(FP),用户可能错过重要信息,这个代价很高。因此我们希望模型非常确定是垃圾邮件时才把它放进垃圾箱,即追求高精确率。
      2. 推荐系统:给用户推荐的内容一定要是他可能喜欢的(TP),而不是他不喜欢的(FP)。推荐不相关的内容会损害用户体验。

3. 召回率 (Recall) - 又称“查全率”

  • 定义:在所有真正患病(Actual Positive) 的人中,有多少被模型成功预测了出来
  • 公式
    Recall = TP / (TP + FN)
  • 理解:它关注的是模型发现正例的能力。一个高召回率的模型意味着“宁可错杀一千,不可放过一个”,它能把绝大多数病人都找出来。它惩罚的是“漏检”(False Negative)
  • 应用场景:当漏检成本(False Negative)很高时,我们需要高召回率。
    • 例子
      1. 疾病检测:如果一个癌症患者被模型误判为健康(FN),他可能因此错过最佳治疗时机,这个代价是致命的。因此我们必须尽可能地把所有潜在病人都找出来复查,即追求高召回率(即使这样会误抓一些健康人FP)。
      2. 欺诈交易识别:放过一个欺诈交易(FN)会导致直接的经济损失,因此必须尽可能召回所有可疑交易,交给人工审核。

核心区别与总结

指标公式关注点核心问题应用场景
准确率 (Accuracy)(TP+TN)/(TP+TN+FP+FN)整体正确性“模型猜对的比例是多少?”类别平衡的通用任务
精确率 (Precision)TP/(TP+FP)预测正例的准确性模型说某人有病,这话有多可信?”误诊成本高(垃圾邮件、推荐)
召回率 (Recall)TP/(TP+FN)捕捉正例的全面性真正有病的人里,模型找出了多少?”漏检成本高(疾病、欺诈)

两者的权衡 (Trade-off)

精确率和召回率通常是矛盾的。提高一个,往往会降低另一个。

  • 如果你想提高召回率(抓住更多坏人),你就需要放宽预测标准,这样你就能抓住更多真正的坏人(TP↑),但同时也会把更多好人误判为坏人(FP↑)。FP的增加会导致精确率下降
  • 如果你想提高精确率(确保抓的都是坏人),你就需要收紧预测标准,这样你抓的人里坏人的比例就很高(FP↓),但一些隐藏得好的坏人可能就会被漏掉(FN↑)。FN的增加会导致召回率下降

如何权衡取决于你的业务需求

  • 疾病筛查:优先保证高召回率(宁可误抓,不可放过)。
  • 垃圾邮件过滤:优先保证高精确率(宁可放过,不可误杀)。

为了综合评估这两个指标,我们引入了 F1 Score,它是精确率和召回率的调和平均数,旨在找到一个平衡点。
F1 Score = 2 * (Precision * Recall) / (Precision + Recall)

好了,今天的分享就到此结束了,我的理解和表达清楚吗?欢迎大家留言讨论。

http://www.dtcms.com/a/393744.html

相关文章:

  • 《Web端图像剪辑方案:Canvas API与JavaScript实现》
  • DeepSeek 登《自然》封面,OpenAI 推出 GPT-5-Codex,Notion Agent 首亮相!| AI Weekly 9.15-9.21
  • 多线程-初阶
  • 在 R 语言中,%>% 是 管道操作符 (Pipe Operator),它来自 magrittr 包(后被 dplyr 等 tidyverse 包广泛采用)
  • IMX6ULL学习笔记_Boot和裸机篇(1)--- SEGGER Embedded Studio 和 Uboot 环境搭建
  • 纯JS代码录制网页中的视频(可多线操作)
  • Javase 基础加强 —— 11 线程池
  • 分布式锁-Redis实现
  • 对于ModelScope的AI模型git部署感悟
  • [论文阅读] 人工智能 + 软件工程 | 从“人工扒日志”到“AI自动诊断”:LogCoT框架的3大核心创新
  • 【软考中级 - 软件设计师 - 应用技术】软件工程案例分析之软件测试实践
  • AI:读《老人与海》有感
  • 定制开发开源AI智能名片S2B2C商城小程序:产业互联网时代的创新商业模式
  • .env与.gitignore:现代软件开发中的环境管理与版本控制防护
  • 理解重参数化
  • css 给文本添加任务图片背景
  • CSS中的选择器、引入方式和样式属性
  • CSS 入门与常用属性详解
  • Linux 下 PostgreSQL 安装与常用操作指南
  • 【Linux】CentOS7网络服务配置
  • 使用C++编写的一款射击五彩敌人的游戏
  • 【LeetCode hot100|Week3】数组,矩阵
  • linux-环境配置-指令-记录
  • 自学嵌入式第四十四天:汇编
  • RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南——模型部署与性能优化
  • PythonOCC 在二维平面上实现圆角(Fillet)
  • Unity 性能优化 之 实战场景简化(LOD策略 | 遮挡剔除 | 光影剔除 | 渲染流程的精简与优化 | Terrain地形优化 | 主光源级联阴影优化)
  • [GXYCTF2019]禁止套娃1
  • 【论文阅读】-《Triangle Attack: A Query-efficient Decision-based Adversarial Attack》
  • 云微短剧小程序系统开发:赋能短剧生态,打造全链路数字化解决方案