Jotting: Confusion Matrix

Confusion matrix 是一個每次我使用的時候都會很confuse的東西。正好今天看到了一個很不錯的解說影片,因此來稍微整理一下:

以這個簡單的二元分類問題為例,我們用黑線作為decision boundary,左邊分做紅色,右邊分做藍色,

Accuracy

這邊有7個點分對,3個點分錯,所以accuracy是70%,model分的還不錯,對吧?

有什麼問題?

我們考慮一個極端的例子,藍點一樣是4個,但紅點變成396個,然後分類器把全部都分成紅色。

整體的accuracy高達99%,然而我們會說這是一個好model嗎?單就藍點來說,他的accuracy可是0%!

Precision & Recall

於是,我們決定使用precision和recall來評估模型:

  • 對紅點來說,precision就是被分成紅色的有多少是紅色,因此是\(\frac{4}{5}\)。
  • 對紅點來說,recall就是所有紅色被分對的數量,因此是\(\frac{4}{6}\)。

道理我都懂,但就很難記啊

  • Precision是看同一側(side)的accuracy。
  • Recall是看全部(all)的accuracy。

給出定義

如果我們讓model兩邊的紅點和藍點各自分開,會長這個樣子:

我們如果將紅色定義為Positve,藍色定義為Negative,則可以定義這四個值:

  • True Positive (TP): 被分做紅色的紅色。
  • True Negative (TN): 被分做藍色的藍色。
  • False Positive (FP): 被分成紅色的藍色。
  • False Negative (FN): 被分成藍色的紅色。
接下來,我們就能定義剛剛的兩個metrics了:
 
\(Precision=\frac{TP}{TP+FP}\) (左半部的上半部比例)
 
\(Recall=\frac{TP}{TP+FN}\) (上半部的左半部比例)
 
注意分子都是TP! 

順便說一下

原先所使用的Accuracy是:
\(Accuracy=\frac{TP+FP}{TP+FP+TN+FN}\) (全部的對角線比例)
 
而另一個常用的F1-Score則是:
\(F1-score=2 \cdot \frac{Precision\times Recall}{Precision+Recall}\)

 

F1-score 是 precision和recall的harmony average,介在0~1。然而它的interpretability 會較差一點,因為我們無法直接看出他在訓練過程中的提升是因為precision提高還是recall提高。

參考資料