1. 在做项目之前,先确立指标
很多 AI 项目走向失败的关键原因:没有在一开始就确定评价指标和成功的指标值。
一个例子
你是饭店老板,想用摄像头自动识别菜品计价:
- 识别多了 → 顾客会发现并提醒你,你会改正
- 识别少了 → 顾客可能不会提醒,饭店直接损失
你权衡后决定:模型识别准确率达到 98% 以上就可以替代人工。
这就确立了:
- 评价指标:准确率
- 成功阈值:98%
每个深度学习项目都应该在动手前先回答这两个问题。
2. 准确率(Accuracy)及其陷阱
2.1 定义
直观,好理解。
2.2 陷阱:类别不平衡
以罕见病筛查为例:发病率十万分之一。
如果一个模型对所有人一律输出”不患病”(0):
- 准确率 = 99.999%
- 但对筛查工作毫无用处——一个病人都找不出来
准确率在正负样本严重失衡时会失效,需要更好的指标。
3. 混淆矩阵(Confusion Matrix)
混淆矩阵把预测结果分成四格,是所有分类指标的基础:
| 真实正类(Positive) | 真实负类(Negative) | |
|---|---|---|
| 预测正类 | TP(True Positive)真正例 | FP(False Positive)假正例(误报) |
| 预测负类 | FN(False Negative)假负例(漏报) | TN(True Negative)真负例 |
- TP:预测对了的正例 — “正例被正确召回”
- FP:把负例预测成正例 — “误报 / 虚惊一场”
- FN:把正例预测成负例 — “漏报 / 放过去了”
- TN:预测对了的负例 — “负例被正确排除”
用混淆矩阵重新定义准确率
现在可以清楚看到:当正例极少(TN 海量),分子被 TN 主导,准确率天然就高——哪怕 TP=0。
4. 精确率(Precision)
4.1 定义
含义:在所有被模型判为”正例”的样本中,真正是正例的比例。
4.2 什么时候关注精确率
当你关心”出手的准确度”时。
你是化妆品公司运营,要从百万用户中选 1 万人寄试用装。寄送有成本,你希望模型说”会购买”的用户中,实际真买的比例越高越好。
此时关注 Precision:确保预测为正的,大都是真正的正例。
5. 召回率(Recall)
5.1 定义
含义:在所有真正的正例中,被模型找出来的比例。
5.2 什么时候关注召回率
当你关心”有没有漏掉”时。
罕见病筛查:10 万人里只有 1 个患病。若模型全部判为负例 → Recall = 0,一个病人都没找到。
此时关注 Recall:确保真正的正例,不要被漏掉。
6. 精确率 vs 召回率 — 取舍关系
两者往往此消彼长:
| 调整方向 | Precision | Recall | 效果 |
|---|---|---|---|
| 提高决策阈值(如 ≥ 0.8 才算正例) | 上升 | 下降 | 只挑最有把握的,可能漏掉一些 |
| 降低决策阈值(如 ≥ 0.3 就算正例) | 下降 | 上升 | 宁可错杀,不可放过 |
偏向 Precision 的场景:垃圾邮件过滤 — 误判一封重要邮件成本太高 偏向 Recall 的场景:疾病筛查 — 宁可多检查几个,不能漏掉一个病人
两个极端(都没用):
- 只预测 1 个正例且正确 → Precision=1,但 Recall 趋近 0
- 所有样本全预测为正例 → Recall=1,但 Precision 极低
7. F1-Score — 兼顾两者
当你需要同时平衡精确率和召回率时,用 F1-Score:
- 取值范围 [0, 1],越大越好
- 它是 Precision 和 Recall 的调和平均数
- 调和平均的特点:只要有一方很低,F1 就会很低 — 避免了”偏科”
8. 总结
分类模型评价指标选择指南:
┌─ 正负样本均衡? → 准确率(Accuracy)够用
├─ 关注"预测准不准"? → 精确率(Precision)— 降误报
├─ 关注"有没有漏掉"? → 召回率(Recall)— 降漏报
└─ 两者都要兼顾? → F1-Score
所有指标的基础都是混淆矩阵:
预测正 预测负
真实正 TP FN
真实负 FP TN