從女友和老媽的使用角度看精確率(precision)和召回率(recall)的不同

  • 2020 年 2 月 14 日
  • 筆記

機器學習和深度學習中,精確率和召回率經常會被提起,但因為定義有點繞了,許久不用後,又通常容易忘記或者是搞混。

本文以一個稍顯調皮的例子說明兩者的不同,以便自己能夠加深理解。

定義

Precision = TP / (TP + FP) Recall = TP / (TP + FN)

那麼 TP、FP、FN 都代表什麼呢?

記住一點,這些概念都是基於預測結果和真實結果的比對。

TP

TP 是 True Positives 的縮寫,指的是真正的正樣本,也可以叫做真陽性。

真實情況:正樣本。 預測結果:正樣本。

FN

FN 是 False Negatives 的縮寫,指的是假的負樣本,也叫做假陰性。

真實情況:正樣本。 預測結果:負樣本。

TN

TN 是 True Negatives 的縮寫,指的是真的負樣本,也叫做真陰性。

真實情況:負樣本。 預測結果:負樣本。

FP

FP 是 False Positives 的縮寫,指的是假的正樣本,也叫做假陽性。

真實情況:負樣本。 預測結果:正樣本。

精確率 (Precision)

Precision=TPTP+FP Precision = frac{TP}{TP+FP} Precision=TP+FPTP​

精確率表示的是在預測所有為正類的結果中,真實的正類的比例。

怎麼理解呢?

來一個場景,這個需要媽媽的配合。

周一

周二

周三

周四

周五

媽媽

媽媽

外賣

外賣

媽媽

上面這張表是你上個月某一周晚餐的情況,媽媽代表晚餐是媽媽做的,外賣代表這一天你吃的外賣。

有一天,因為某些原因,你需要回憶一下那一周的晚餐情況。

你努力想了想,只記得 4 天的情況,然後說出了自己的答案。

周一

周二

周三

周四

周五

媽媽

媽媽

外賣

外賣

媽媽

媽媽

外賣

媽媽

媽媽

假如預測結果是媽媽代表 Positive.

那麼在 4 個結果中,你預測了 3 個 Positive。

但是在這裡。

TP = 2 (周一,周五)  FP = 1 ( 周四)

所以呢,精確率是多少?

Precision=TPTP+FP=22+1=0.67 Precision = frac{TP}{TP+FP}=frac{2}{2+1}=0.67 Precision=TP+FPTP​=2+12​=0.67

得知這個結果時候,你的母親露出標誌性的慈母笑。

"我兒子真棒!媽媽做的飯菜大多都記得。"

召回率 (Recall)

Recall=TPTP+FN Recall = frac{TP}{TP+FN} Recall=TP+FNTP​

召回率表示的是,在所有正樣本中,被預測出來的比例。

怎麼理解呢?

還是同樣的場景,不過這次需要你女友的配合。

周一

周二

周三

周四

周五

周六

周日

外賣

外賣

女友

外賣

女友

外賣

女友

去年的某一周,這是你的晚餐情況。

女友代表那天晚餐她做的,外賣代表你叫的外賣自己解決。

因為某種原因,你需要回憶那一周的情況。

因為時間過得太久,你只能拍腦袋決定了。

周一

周二

周三

周四

周五

周六

周日

外賣

外賣

女友

外賣

女友

外賣

女友

外賣

外賣

外賣

外賣

女友

女友

外賣

女友選項是正樣本。

你的預測結果中,有 2 個正樣本。 但是,TP = 1, FP = 1。

另外,周三和周日屬於 FN 的情況。

所以,召回率是多少呢?

Recall=TPTP+FN=11+2=0.33 Recall = frac{TP}{TP+FN}=frac{1}{1+2}=0.33 Recall=TP+FNTP​=1+21​=0.33

這個結果如何呢?

你自己心裡應該有數。

「面對疾風吧!!!」

總結

要區分精確率和召回率要看分母。

精確率的分母是你預測的所有的正樣本數量,因此精確率代表了區分負樣本的能力。

召回率的分母是所有真實情況的正樣本數量,召回率代表了區分正樣本的能力。