前言

這篇整理了混淆矩陣、評估指標和一些相關的東西,對深度學習領域來說,這些東西應該是蠻重要的。

混淆矩陣 (Confusion Matrix)

這個名字是翻譯過來的,所以會讓人有點不太懂為甚麼要取成 “混淆矩陣”,但如果改叫 “誤差矩陣” 應該就會比較好理解了。在做深度學習進行預測或是醫療領域做疾病檢測時,可能多多少少都會有一些 “誤差” 產生。

以疾病檢測作為假設好了,一般來說做檢測想判斷的就是這個病人身上究竟是有病原體或是沒有病原體,但現在這個檢測方式可能會出差錯,導致把沒有生病的病人判斷為有生病,增加病人擔憂,也可能把有生病的病人判斷為沒有生病,增加社會恐慌,這就是標題所講的 “誤差”。

photo

上圖就是 Confusion Matrix 的示意圖,中間四格是根據預測結果和實際結果的不同所畫出來的表格,其中紅色字的表格是判斷錯誤的結果,這兩格在判斷標準好壞是個蠻重要的判斷依據。這四格可以組合出很多種的評估指標 (下一章節會講到),但不會說哪一種評估指標才是最好的,因為每種情況都有最適合的指標。

有個在做光學檢測的工廠,要判斷產品是否為瑕疵品,因為其實不太可能保證分類器一定沒有誤差,這時候就會盡量希望檢測標準的 FP (判斷產品是好的但其實有瑕疵) 越小越好,因為這樣比較不會被客戶退貨。

評估指標

基本款

以下四種是最常見的

  • Accuracy = (TP + TN) / (TP + FP + TN + FN): 這個就是把四種情況合併,計算出判斷正確的樣本佔比。
  • Recall = TP / (TP + FN): 計算出所有實際為正樣本的樣本中,預測正確者。
  • Specificity = TN / (TN + FP): 計算出所有實際為負樣本的樣本中,預測正確者。
  • Precision = TP / (TP + FP): 計算出所有預測為負樣本的樣本中,實際正確者。

進階款

alt text

ROC (Receiver Operating Characteristic)

講完評估指標,再來就要提到分類器在不同閾值 (Threshold/Cut-off) 下的決策品質,就是使用 ROC 去判斷,把檢測的輸出結果以曲線的方式呈現。

  • x 軸是 1 - Specificity,錯誤接受率 / 偽陽性率 (FPR)。
  • y 軸是 Recall,正確接受率 / 真陽性率 (TPR)。
alt text

如上圖,他呈現的是在不同的 Specificity 下,判斷正確的機率為多少,

AUC (Area Under the Curve)

再來要講的是 ROC 曲線下面積,這可以顯示出檢測的準確性。

photo

從上面這張可以看到,透過曲線下面積大小可以看出檢測的準確性高低。