机器学习中三个是基础的指标:准确率 (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)

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

相关推荐
飞哥数智坊5 分钟前
当你还在用 AI 写周报,别人的 AI 已经在炒币炒股了
人工智能
Juchecar14 分钟前
翻译:软件开发的演进:从机器码到 AI 编排
人工智能
字节数据平台20 分钟前
火山引擎发布Data Agent新能力,推动用户洞察进入“智能3.0时代”
大数据·人工智能
盈电智控21 分钟前
体力劳动反而更难被AI取代?物联网科技如何守护最后的劳动阵地
开发语言·人工智能·python
也许是_42 分钟前
大模型原理之深度学习与神经网络入门
人工智能·深度学习·神经网络
数智顾问44 分钟前
(111页PPT)大型集团IT治理体系规划详细解决方案(附下载方式)
大数据·人工智能
海棠AI实验室1 小时前
AI代发货(DropShopping)革命:构建自动化电商帝国终极指南
运维·人工智能·自动化
谢景行^顾1 小时前
深度学习--激活函数
人工智能·python·机器学习
三千院本院1 小时前
LlaMA_Factory实战微调Qwen-LLM大模型
人工智能·python·深度学习·llama
ifeng09181 小时前
HarmonyOS实战项目:AI健康助手(影像识别与健康分析)
人工智能·华为·wpf·harmonyos