目錄

認識混淆矩陣

封面圖片是由 ChatGPT 生成並經由 Canva 修改的混淆矩陣圖片。 ChatGPT 的提示詞為 “A visually engaging illustration of a confusion matrix used in machine learning, with labeled sections for True Positive, False Positive, True Negative, and False Negative. The matrix is displayed on a futuristic digital interface with a blue neon glow. The background features abstract neural network connections and data flow lines, symbolizing artificial intelligence and deep learning. The image is designed with a professional and modern aesthetic.” 。

前言

在機器學習中,我們能建立各式各樣的模型,從簡單的線性迴歸到複雜的神經網路模型等。這些模型可以應用於不同的領域,例如影像辨識、語言生成、金融預測等。不同的模型各有其優勢與適用場景,例如線性迴歸適合處理資料集與目標變數的擬合與分析,而深度學習則能處理複雜的非線性的資料集。然而,如何判斷一個模型的好壞呢?單純依賴準確率(Accuracy)可能不足以評估模型的表現,特別是在類別分佈不均的情境下。因此,我們使用 混淆矩陣(Confusion Matrix) 來分析分類模型的效能。

什麼是準確率?

準確率(Accuracy)是最直觀的評估指標之一,能夠簡單地表示模型預測正確的樣本數占總樣本數的比例。但僅看準確率可能會出現評估失準的現象,這個現象在分類類別嚴重不均衡的情境下尤為明顯。例如:

舉例

在醫院中有 10,000 名民眾進行某疾病的篩選,而實際上僅有 50 人患有該疾病。現在經由醫療設備篩選出 10 人呈現陽性,則準確率為

$$ \frac{\text{總人數} - (\text{實際患病人數} - \text{患病且檢驗陽性人數})}{\text{總人數}} = \frac{10000 - (50 - 10)}{10000} = 99.6 \% $$

別以為準確率為 99.6% 相當高,但實際上患病 50 人中僅有 10 人被診斷為陽性,仍有 $\frac{50 - 10}{50} = \frac{4}{5} = 80\%$ 的人未被檢驗出來,這是很可怕的!

對於準確率失準的問題,我們可以使用更詳細的分析工具 —— 混淆矩陣,協助我們進行分析。

什麼是混淆矩陣?

混淆矩陣是一種表格格式的評估指標,能夠展示分類模型的預測結果與實際標籤之間的關係。對於二元分類問題,混淆矩陣通常呈現為 $2 \times 2$ 矩陣,其組成如下:

實際為真 (Positive)
(陽性)
實際為假 (Negative)
(陰性)
預測為真 (Positive)
(陽性)
真陽性 (True Positive, TP)偽陽性 (False Positive, FP)
(型一錯誤)
預測為假 (Negative)
(陰性)
偽陰性 (False Negative, FN)
(型二錯誤)
真陰性 (True Negative, TN)
  • 真陽性(TP):模型正確預測為真的數量。
  • 假陽性(FP):模型將假值預測為真的數量。
  • 假陰性(FN):模型將真值預測為假的數量。
  • 真陰性(TN):模型正確預測為假的數量。
提醒
需要特別注意的是, TP 和 FN 皆屬於實際為真的類別;而 FP 和 TN 則屬於實際為假的類別。這時常被搞混。

型一錯誤與型二錯誤

在統計學與機器學習中,我們通常關心兩種類型的錯誤:

型一錯誤 (Type I Error)

也稱為 假陽性(False Positive, FP),即模型錯誤地將假分類為真。例如,在醫學檢測中,某位健康的病人被誤診為患病。

型二錯誤 (Type II Error)

也稱為 假陰性(False Negative, FN),即模型錯誤地將真分類為假。例如,一位真正有病的病人被誤診為健康。

型一錯誤與型二錯誤的影響取決於應用場景。例如,在詐欺偵測中,型一錯誤可能導致誤判正常交易為詐欺,而型二錯誤則可能導致真正的詐欺行為未被發現。型二錯誤通常比型一錯誤更嚴重,例如在醫療診斷中,因為錯過疾病可能導致病情惡化。

混淆矩陣的衍生指標

透過混淆矩陣,我們可以計算多種評估指標,取得相較於準確率更多的資訊。

Total population
= $P + N$
Predicted positivePredicted negativeInformedness,
Bookmaker informedness ($BM$)

= $TPR + TNR - 1$
Prevalence threshold
($PT$)

= $\frac{\sqrt{TPR \times FPR} - FPR}{TPR - FPR}$
Actual positive
($P$)
True positive
($TP$)
False negative
($FN$)
True positive rate ($TPR$),
Recall,
Sensitivity ($SEN$)

= $\frac{TP}{P}$ = $1 - FNR$
False negative rate
($FNR$)

= $\frac{FN}{P}$
= $1 - TPR$
Actual negative
($N$)
False positive
($FP$)
True negative
($TN$)
False positive rate
($FPR$)

= $\frac{FP}{N}$ = $1 - TNR$
True negative rate
($TNR$)

= $\frac{TN}{N}$
= $1 - FPR$
Prevalence
= $\frac{P}{P + N}$
Positive predictive value
($PPV$)

= $\frac{TP}{TP + FP}$
= $1 - FDR$
False omission rate
($FOR$)

= $\frac{FN}{TN + FN}$
= $1 - NPV$
Positive likelihood ratio
($LR+$)

= $\frac{TPR}{FPR}$
Negative likelihood ratio
($LR−$)

= $\frac{FNR}{TNR}$
Accuracy
($ACC$)

= $\frac{TP + TN}{P + N}$
False discovery rate
($FDR$)

= $\frac{FP}{TP + FP}$
= $1 - PPV$
Negative predictive value
($NPV$)

= $\frac{TN}{TN + FN}$
= $1 - FOR$
Markedness
($MK$)

= $PPV + NPV - 1$
Diagnostic odds ratio
($DOR$)

= $\frac{LR+}{LR−}$
Balanced accuracy
($BA$)

= $\frac{TPR + TNR}{2}$
$F_1$ score
= $\frac{2 \times PPV \times TPR}{PPV + TPR}$ = $\frac{2 \times TP}{2 \times TP + FP + FN}$
Fowlkes–Mallows index
($FM$)

= $\sqrt{PPV \times TPR}$
Matthews correlation coefficient
($MCC$)

= $\sqrt{TPR \times TNR \times PPV \times NPV}$
$- \sqrt{FNR \times FPR \times FOR \times FDR}$
Threat score ($TS$),
Critical success index ($CSI$),
Jaccard index

= $\frac{TP}{TP + FN + FP}$

以上擷取自英文版維基百科

常見的指標計算方式如下:

準確率 (Accuracy)

$$ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} $$

混淆矩陣也能夠計算準確率,它能衡量整體正確預測的比例。但同樣地,在類別不平衡的資料集中可能會誤導結果。

精確率 (Precision)

$$ Precision = \frac{TP}{TP + FP} $$

也稱為 陽性預測率(Positive Predictive Value, PPV) ,表示模型預測為真的樣本中,真陽性的比例。

召回率 (Recall)

$$ Recall = \frac{TP}{TP + FN} $$

也稱為 靈敏度(Sensitivity)真陽性率(True Positive Rate, TPR) ,表示實際為真的樣本中,被模型正確辨識的比例。

F 分數 (F-score)

$$ F_\beta = (1 + \beta^2) \times \frac{Precision \times Recall}{(\beta^2 \times Precision) + Recall} $$

F-score 也稱為 F-measure ,會同時考慮精確率召回率,通常用於判斷演算法的精確度。在上式中, $\beta$ 是權重參數,當 $\beta \to 0$ 時, F 分數會退化成精確率;當 $\beta \to \infty$ 時, F 值會退化成召回率。

$\beta = 1$ 是 F 分數的一個特例,表示精確率與召回率擁有相同的權重。換句話說,$F_1$ 分數是精確率與召回率的調和平均數,適合用於評估當精確率與召回率之間存在權衡時的模型表現。

$$ F_1 = 2 \times \frac{Precision \times Recall}{Precision + Recall} = \frac{2TP}{2TP + FP + FN} $$

提示

計算過程:

分子

$$ Precision \times Recall = \left( \frac{TP}{TP + FP} \right) \times \left( \frac{TP}{TP + FN} \right) = \frac{TP^2}{(TP+FP)(TP+FN)} $$

分母

$$ Precision + Recall = \left( \frac{TP}{TP + FP} \right) + \left( \frac{TP}{TP + FN} \right) = \frac{2TP^2 + TP \times FN + TP \times FP}{(TP+FP)(TP+FN)} $$

$$ F_1 = 2 \times \frac{Precision \times Recall}{Precision + Recall} = 2 \times \frac{\frac{TP^2}{(TP+FP)(TP+FN)}}{\frac{2TP^2 + TP \times FN + TP \times FP}{(TP+FP)(TP+FN)}} = \frac{2TP}{2TP + FP + FN} $$

特異性 (Specificity)

$$ Specificity = \frac{TN}{TN + FP} $$

也稱為 真陰性率(True Negative Rate, TNR) ,是相對於召回率的指標,表示實際為負的樣本中,被模型正確辨識的比例。

何時使用混淆矩陣?

  • 類別不均衡時: 當某一類別佔據大部份資料集時,單純使用準確率可能會高估模型的表現。
  • 關心誤分類成本時: 在醫療診斷、詐欺偵測等應用中,假陽性與假陰性的影響可能不同,因此需要精細分析錯誤類型。
  • 多類別分類問題: 混淆矩陣可以擴展至多類別分類( $N \times N$ 矩陣),用於分析不同類別的錯誤分類情況。

結語

混淆矩陣是很實用的評估指標,可以幫助我們從不同的角度分析分類模型的效能。透過計算各類衍生指標,我們能夠更全面地評估模型表現,並根據需求調整模型。

參考資料