为什么 Accuracy 说谎 — 实际重要的指标(第4部分)
Source: Dev.to

准确率是机器学习中使用最广泛的指标。
它也是最具误导性的。在真实的生产环境中,准确率会让表现不佳的模型看起来不错,掩盖失败,扭曲业务决策,甚至在造成灾难性下游影响之前制造成功的幻觉。
准确率是一种虚荣指标。它几乎无法反映真实的机器学习性能。
准确率陷阱
准确率公式
Accuracy = Correct predictions / Total predictions
准确率失效的情况
- 类别不平衡
- 稀有事件更重要
- 错误代价不同
- 分布发生变化
- 置信度重要
大多数真实的机器学习场景都存在上述一种或多种问题。
经典案例:欺诈检测
- 数据集:10,000 笔正常交易,12 笔欺诈
- 模型:把所有交易都预测为“正常”
Accuracy = 99.88%
模型捕获了 0 笔欺诈 → 完全无用。准确率掩盖了失败。
为什么准确率会失效
| 问题 | 为什么准确率毫无用处 |
|---|---|
| 类别不平衡 | 多数类主导 |
| 稀有事件 | 准确率忽视少数类 |
| 成本敏感预测 | 错误预测的惩罚不同 |
| 真实数据漂移 | 准确率保持不变,而失败率上升 |
| 业务关键指标(KPI) | 准确率不衡量财务影响 |
准确率 ≠ 业务价值。
真正重要的度量
1. 精确率(Precision)
定义:所有被预测为正例的样本中,真正为正例的比例。
适用场景:误报代价高(例如垃圾邮件检测、欺诈警报)。
公式
Precision = TP / (TP + FP)
2. 召回率(Recall)
定义:所有实际为正例的样本中,被模型识别出的比例。
适用场景:漏报代价高(例如癌症检测、入侵检测)。
公式
Recall = TP / (TP + FN)
3. F1 分数
定义:精确率和召回率的调和平均。
适用场景:需要在精确率和召回率之间取得平衡时。
公式
F1 = 2 * (Precision * Recall) / (Precision + Recall)
4. ROC‑AUC
衡量模型区分不同类别的能力。常用于信用评分和风险排序。AUC 越高,区分度越好。
5. PR‑AUC
在高度不平衡的数据集上比 ROC‑AUC 更具信息量。用于欺诈、稀有缺陷、异常检测等场景。
6. 对数损失(Log Loss,交叉熵)
评估预测概率的正确性。当置信度重要且概率直接驱动决策时尤为关键。
7. 成本基度量
准确率忽视成本,而真实的机器学习必须考虑成本。
示例
- 假阴性成本 = ₹5,000
- 假阳性成本 = ₹50
公式
Total Cost = (FN * Cost_FN) + (FP * Cost_FP)
企业会使用此类成本计算来衡量模型的真实影响。
如何挑选合适的度量 —— 实用速查表
| 使用场景 | 推荐度量 |
|---|---|
| 欺诈检测 | Recall、F1、PR‑AUC |
| 医疗诊断 | Recall |
| 垃圾邮件检测 | Precision |
| 客户流失预测 | F1、Recall |
| 信用评分 | ROC‑AUC、KS |
| 商品排序 | MAP@k、NDCG |
| NLP 分类 | F1 |
| 预测(Forecasting) | RMSE、MAPE |
真正的教训
准确率适合初学者。真正的机器学习工程师会选择能够反映业务价值的度量。
即使准确率很高,也可能出现:
- 利润下降
- 风险上升
- 用户流失
- 欺诈未被检测
- 信任崩塌
度量必须匹配:
- 所属领域
- 错误代价
- 真实世界的分布
关键要点
| 洞察 | 含义 |
|---|---|
| 准确率具有误导性 | 切勿单独使用 |
| 根据使用场景选择度量 | 没有通用的唯一度量 |
| 精确率/召回率更重要 | 尤其在类别不平衡时 |
| ROC‑AUC 与 PR‑AUC 提供更深层次的洞察 | 对排序和稀有事件尤为有用 |
| 始终将度量与业务挂钩 | 机器学习关注的是影响,而非单纯的数学计算 |
下一篇 —— 第 5 部
过拟合与欠拟合——超越教材定义
真实的症状、真实的调试、真实的工程解决方案。