理解机器学习中的错误:Accuracy, Precision, Recall 与 F1 Score

发布: (2025年12月17日 GMT+8 02:59)
7 min read
原文: Dev.to

Source: Dev.to

机器学习模型常常通过 数字 来评估,但许多初学者(甚至是实践者)误解了 这些数字到底意味着什么。一个显示 95 % 准确率 的模型,在真实场景中仍可能 毫无用处

在本文中,我们将拆解:

  • 机器学习中的错误类型
  • 混淆矩阵
  • 准确率(Accuracy)
  • 精确率(Precision)
  • 召回率(Recall)
  • F1 分数(F1 Score)

全部 直观 解释,并提供你可以在面试或项目中自信使用的示例。

1️⃣ Types of Errors in Machine Learning

分类问题 中,预测结果可分为四类:

Predicted PositivePredicted Negative
Actual PositiveTrue Positive (TP)False Negative (FN)
Actual NegativeFalse Positive (FP)True Negative (TN)

🔴 False Positive (Type I Error)

模型预测为 Positive,但实际结果是 Negative

示例: 一封邮件被标记为 Spam,但实际上 Not Spam

🔵 False Negative (Type II Error)

模型预测为 Negative,但实际结果是 Positive

示例: 医学检测显示 No Disease,但患者实际上患有该疾病。

这些错误会直接影响评估指标。

2️⃣ 混淆矩阵(The Foundation)

混淆矩阵 概括预测结果:

                Predicted
               +      -
Actual +      TP     FN
Actual -      FP     TN

所有指标均来源于此表。

3️⃣ 准确率

📌 定义

准确率衡量模型正确的频率。

📐 公式

[ \text{Accuracy} = \frac{TP + TN}{TP + FP + FN + TN} ]

❗ 准确率的问题

不平衡数据集上,准确率可能具有误导性

示例

  • 99名正常患者
  • 1名患病患者

如果模型对所有人都预测无疾病

[ \text{Accuracy}= \frac{99}{100}=99% ]

尽管准确率很高,模型仍然危险。→ 仅靠准确率不足以评估模型

4️⃣ Precision

📌 定义

在所有预测为正的样本中,有多少是真正的正例?

📐 公式

[ \text{Precision} = \frac{TP}{TP + FP} ]

🎯 何时关注 Precision?

误报代价高 时。

示例

  • 垃圾邮件检测
  • 欺诈检测

你不想错误地标记合法案例。

5️⃣ Recall (Sensitivity)

📌 定义

在所有实际为正的样本中,模型正确识别了多少?

📐 公式

[ \text{Recall} = \frac{TP}{TP + FN} ]

🎯 何时关注召回率?

假阴性(False Negatives)危险 时。

示例

  • 癌症检测
  • 事故检测

漏掉一个正例可能会导致严重后果。

6️⃣ 精确率 ↔ 召回率 权衡

提高精确率通常会降低召回率,反之亦然。

场景优先级
垃圾邮件过滤精确率
疾病检测召回率
欺诈检测召回率

这种权衡导致我们使用 F1 分数

7️⃣ F1 Score

📌 定义

精确率召回率调和平均数

📐 公式

[ \text{F1} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} ]

✅ 为什么使用 F1 分数?

  • 平衡精确率和召回率
  • 不平衡数据集表现良好
  • 对极端值进行惩罚(如果精确率或召回率任一较低,F1 会急剧下降)

8️⃣ Summary Table

指标最适用情形关注点
准确率数据平衡时整体正确性
精确率假阳性代价高预测质量
召回率假阴性代价高检测完整性
F1 分数数据不平衡时性能平衡

9️⃣ 实际案例研究

将指标映射到 真实世界问题 能帮助更清晰地理解它们。以下是一些常见的、面试相关的案例研究。

🏥 案例 1:疾病检测(癌症 / COVID)

  • 场景:模型预测患者是否患有疾病。
  • 关键错误假阴性 – 将实际患病的患者预测为 健康
  • 为何召回率更重要:漏诊患者会延误治疗,危及生命。一定程度的误报(假阳性)是可以接受的。

主要指标Recall

💳 案例 2:信用卡欺诈检测

  • 场景:模型识别欺诈交易。
  • 关键错误假阴性 – 将欺诈交易标记为正常。
  • 权衡:假阳性太多会惹恼客户,假阴性太多会导致财务损失。

最佳指标F1 Score(平衡假阳性和假阴性的成本)

📧 案例 3:垃圾邮件检测

  • 场景:将邮件分类为垃圾邮件或非垃圾邮件。
  • 关键错误假阳性 – 将重要邮件误标为垃圾邮件。
  • 为何精确率更重要:用户可能错过关键邮件(工作机会、一次性密码、发票等)。

主要指标Precision

🚗 案例 4:自动驾驶(行人检测)

  • 场景:使用摄像头和传感器数据检测行人。
  • 关键错误假阴性 – 未检测到行人。
  • 为何召回率至关重要:漏检任何一个行人都可能致命。

主要指标Recall

🏭 案例 5:制造缺陷检测

  • 场景:在装配线上检测不良产品。
  • 关键错误取决于具体情境
    • 假阳性过高 → 浪费并增加成本
    • 假阴性过高 → 有缺陷的产品流向客户
  • 平衡方法:同时使用精确率和召回率。

最佳指标F1 Score

🔚 最后思考

永远不要盲目相信 准确率。始终要问:

  • 哪种错误(假阳性还是假阴性)更危险?
  • 我的数据集是否不平衡?
  • 假阳性和假阴性的实际成本各是多少?

理解这些指标可以让你为任何问题选择正确的评估策略。

ics 让你成为 更好的机器学习工程师,而不仅仅是模型构建者。

如果本文对你有帮助,欢迎分享或在评论中写下你最常遇到的机器学习陷阱!

Back to Blog

相关文章

阅读更多 »

亚马逊押注 AI 基准不重要

Rohit Prasad,亚马逊的 SVP of AGI。这是 Alex Heath 的《Sources》摘录,这是一份关于 AI 和科技行业的 newsletter,仅为 The Verge 订阅者 syndicate。

⚠️ 机器学习中的数据泄漏

正在毁灭真实世界机器学习系统的沉默准确性杀手——ML工程失败系列第二篇 大多数机器学习初学者过度关注模型选择……