跳转至

用西瓜搞懂准确率、精确率和召回率

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

黑色马克笔随手画下的一块西瓜

先把「好瓜」定成正类

假设有 100 个西瓜,人工切开后确认:

  • 20 个是好瓜
  • 80 个不是好瓜

模型先看外观,再把它们分成「好瓜」和「非好瓜」。结果如下:

真实情况 \ 模型判断 判为好瓜 判为非好瓜 合计
真正的好瓜 15(TP) 5(FN) 20
真正的非好瓜 10(FP) 70(TN) 80
合计 25 75 100

四个缩写不用死背。正、负说模型判成哪一类;真、假说这个判断对不对。

  • TP:好瓜被模型挑出来了
  • FP:不是好瓜,却被模型挑成好瓜
  • FN:是好瓜,却被模型漏掉了
  • TN:不是好瓜,也被模型正确排除了

准确率看全部西瓜

准确率把全部西瓜的正确与错误一起计算

准确率(Accuracy)回答:100 个西瓜里,模型一共判断对了多少个?

模型正确挑出 15 个好瓜,又正确排除 70 个非好瓜,所以:

\[ \text{准确率} = \frac{TP + TN}{TP + FP + FN + TN} = \frac{15 + 70}{100} = 85\% \]

准确率给的是全局成绩。它把「挑对好瓜」和「排对非好瓜」都算作正确。

精确率看模型挑出的好瓜

精确率只看模型挑进篮子的西瓜

精确率(Precision,也叫查准率)回答:模型说是好瓜的那些西瓜里,真好瓜占多少?

模型一共挑出 25 个「好瓜」,其中 15 个是真的:

\[ \text{精确率} = \frac{TP}{TP + FP} = \frac{15}{15 + 10} = 60\% \]

精确率高,表示模型的「好瓜」招牌比较可信。把模型挑出的瓜装进高价礼盒时,这个指标很重要——误放一个坏瓜,代价就不小。

召回率看真正的好瓜

召回率关注真正的好瓜有没有被漏在圈外

召回率(Recall,也叫查全率)回答:所有真正的好瓜里,模型找到了多少?

实际有 20 个好瓜,模型找到了 15 个:

\[ \text{召回率} = \frac{TP}{TP + FN} = \frac{15}{15 + 5} = 75\% \]

召回率高,表示漏掉的好瓜少。要先尽量找全候选瓜,再交给人工复检时,召回率通常比精确率更重要。

85% 准确率不等于模型很会挑好瓜

这个模型的准确率有 85%,精确率却只有 60%。原因就在 80 个非好瓜上:模型正确排除了其中 70 个,它们把准确率抬高了;但模型挑出的 25 个「好瓜」里,有 10 个其实不是好瓜。

类别越不均衡,准确率越容易让人误判。假如 100 个瓜里只有 5 个坏瓜,一个模型把所有瓜都说成好瓜,准确率仍有 95%,但它一个坏瓜也没找出来。若把「坏瓜」定为正类,它的召回率就是 0%。

正类必须先说清楚

指标不会自动知道哪一类更重要。挑礼盒时可以把「好瓜」当正类;做食品安全筛查时,更适合把「坏瓜」当正类。正类一换,TP、FP、FN、TN 都要跟着重算。

三句话记住

指标 它问的问题 本例结果
准确率 全部西瓜里,判断对了多少? 85%
精确率 模型挑出的好瓜里,真好瓜有多少? 60%
召回率 真正的好瓜里,模型找到了多少? 75%

先圈出分母,就不容易混:全部、模型挑出、实际拥有