用西瓜搞懂准确率、精确率和召回率
三个指标的区别,主要在分母看的是哪堆西瓜:准确率看全部西瓜,精确率看模型挑出的好瓜,召回率看真正的好瓜。

先把「好瓜」定成正类
假设有 100 个西瓜,人工切开后确认:
- 20 个是好瓜
- 80 个不是好瓜
模型先看外观,再把它们分成「好瓜」和「非好瓜」。结果如下:
| 真实情况 \ 模型判断 | 判为好瓜 | 判为非好瓜 | 合计 |
|---|---|---|---|
| 真正的好瓜 | 15(TP) | 5(FN) | 20 |
| 真正的非好瓜 | 10(FP) | 70(TN) | 80 |
| 合计 | 25 | 75 | 100 |
四个缩写不用死背。正、负说模型判成哪一类;真、假说这个判断对不对。
- TP:好瓜被模型挑出来了
- FP:不是好瓜,却被模型挑成好瓜
- FN:是好瓜,却被模型漏掉了
- TN:不是好瓜,也被模型正确排除了
准确率看全部西瓜

准确率(Accuracy)回答:100 个西瓜里,模型一共判断对了多少个?
模型正确挑出 15 个好瓜,又正确排除 70 个非好瓜,所以:
准确率给的是全局成绩。它把「挑对好瓜」和「排对非好瓜」都算作正确。
精确率看模型挑出的好瓜

精确率(Precision,也叫查准率)回答:模型说是好瓜的那些西瓜里,真好瓜占多少?
模型一共挑出 25 个「好瓜」,其中 15 个是真的:
精确率高,表示模型的「好瓜」招牌比较可信。把模型挑出的瓜装进高价礼盒时,这个指标很重要——误放一个坏瓜,代价就不小。
召回率看真正的好瓜

召回率(Recall,也叫查全率)回答:所有真正的好瓜里,模型找到了多少?
实际有 20 个好瓜,模型找到了 15 个:
召回率高,表示漏掉的好瓜少。要先尽量找全候选瓜,再交给人工复检时,召回率通常比精确率更重要。
85% 准确率不等于模型很会挑好瓜
这个模型的准确率有 85%,精确率却只有 60%。原因就在 80 个非好瓜上:模型正确排除了其中 70 个,它们把准确率抬高了;但模型挑出的 25 个「好瓜」里,有 10 个其实不是好瓜。
类别越不均衡,准确率越容易让人误判。假如 100 个瓜里只有 5 个坏瓜,一个模型把所有瓜都说成好瓜,准确率仍有 95%,但它一个坏瓜也没找出来。若把「坏瓜」定为正类,它的召回率就是 0%。
正类必须先说清楚
指标不会自动知道哪一类更重要。挑礼盒时可以把「好瓜」当正类;做食品安全筛查时,更适合把「坏瓜」当正类。正类一换,TP、FP、FN、TN 都要跟着重算。
三句话记住
| 指标 | 它问的问题 | 本例结果 |
|---|---|---|
| 准确率 | 全部西瓜里,判断对了多少? | 85% |
| 精确率 | 模型挑出的好瓜里,真好瓜有多少? | 60% |
| 召回率 | 真正的好瓜里,模型找到了多少? | 75% |
先圈出分母,就不容易混:全部、模型挑出、实际拥有。