Home
探索 Uedu
學生控制台
註冊會員/登入
研究知情同意中心
教師控制台
課程設定
支援與訊息
Uptime 數據

UeduGPTs

--

Jupyters

2

UG26 CISOSE26
臺北 AQI 26 · 臺中 AQI 19 · 臺南 AQI 18 · 高雄 AQI 17

AI 回覆桌面通知

AI 助教回覆完成時顯示桌面通知

聊天訊息通知

同學在討論區發送訊息時通知

聲音通知

每當有新通知時播放提示音

迴歸分析

分類模型評估指標:混淆矩陣、Precision、Recall、F1 與 ROC-AUC

從混淆矩陣到調和平均與曲線下面積,建立一套依決策情境選對指標的分類評估語言

為什麼「準確率」會騙人

想像一個篩檢罕見疾病的模型:盛行率只有 1%,那麼一個「永遠預測沒病」的模型,準確率就有 99%——卻一個病人都抓不到。這說明準確率(accuracy)在類別不平衡時嚴重失真,我們需要更細緻的分類評估指標。這篇把分類模型評估的整套語言一次講清楚:混淆矩陣、Precision、Recall、F1、ROC 與 AUC。

分類模型評估指標概念示意圖

一切的起點:混淆矩陣

二元分類把每個預測歸入四格之一,組成混淆矩陣(confusion matrix)

實際為正 實際為負
預測為正 TP(真陽性) FP(偽陽性,型一錯誤)
預測為負 FN(偽陰性,型二錯誤) TN(真陰性)

四個數字衍生出所有指標。準確率只是其中最粗的一個:

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

Precision 與 Recall:兩種「抓對」

  • 精確率(Precision,查準率):在「我預測為正」的當中,真的為正的比例。 $$ \text{Precision} = \frac{TP}{TP+FP} $$
  • 召回率(Recall,查全率,= 敏感度 Sensitivity):在「實際為正」的當中,被我抓到的比例。 $$ \text{Recall} = \frac{TP}{TP+FN} $$

兩者刻畫不同的痛點:Precision 高代表「報警很少誤報」(適合垃圾郵件,誤殺正常信很惱人);Recall 高代表「漏掉的很少」(適合癌症篩檢,漏掉病人代價極高)。

還有對應負類的特異度(Specificity)= TN/(TN+FP),與 Recall 是「正反兩面」。

F1:當你同時在乎 Precision 與 Recall

Precision 與 Recall 常此消彼長:把判定門檻調鬆,Recall 上升但 Precision 下降。要用「一個數字」綜合兩者,F1 分數取兩者的調和平均(harmonic mean)

$$ F_1 = 2\cdot\frac{\text{Precision}\cdot\text{Recall}}{\text{Precision}+\text{Recall}} $$

為什麼用調和平均而非算術平均? 因為調和平均會被「較小的那個」拉低——只要 Precision 或 Recall 有一個很爛,F1 就很爛,逼模型兩者兼顧。例如 Precision = 1.0、Recall = 0.0 時,算術平均是 0.5(看似還行),但 F1 = 0(誠實地反映模型沒抓到任何正例)。

帶數字的小範例

某模型在 100 個實際病人 + 900 個健康人上:抓出 80 個真病人(TP=80)、漏掉 20 個(FN=20)、誤報 40 個健康人為病人(FP=40)。

  • Precision = 80/(80+40) = 0.667
  • Recall = 80/(80+20) = 0.80
  • F1 = 2 × (0.667 × 0.80)/(0.667 + 0.80) ≈ 0.727
  • 而 Accuracy = (80+860)/1000 = 0.94——看起來很高,卻掩蓋了「每 3 個陽性報告就有 1 個誤報」。

F$_\beta$ 一般化:若 Recall 比 Precision 重要 β 倍,用 $F_\beta = (1+\beta^2)\frac{PR}{\beta^2 P + R}$;β=2(F2)偏重 Recall,β=0.5 偏重 Precision。

門檻與 ROC:把「一條曲線」當成模型

多數分類器其實輸出一個機率分數,再用門檻(threshold)切成正負。改變門檻,就在 Precision 與 Recall 之間移動。與其鎖死一個門檻,不如看模型在所有門檻下的表現——這就是 ROC 曲線(Receiver Operating Characteristic)

  • 橫軸:偽陽性率 FPR = FP/(FP+TN) = 1 − 特異度
  • 縱軸:真陽性率 TPR = Recall

門檻從嚴到鬆掃過,描出一條由 (0,0) 到 (1,1) 的曲線。對角線代表隨機猜測;曲線越往左上角凸,模型越好。

AUC(Area Under the Curve) 就是 ROC 曲線下面積,介於 0.5(亂猜)到 1(完美)。它有個漂亮的機率詮釋:

$$ \text{AUC} = P(\text{score}_{\text{正例}} > \text{score}_{\text{負例}}) $$

亦即「隨機抓一個正例和一個負例,模型給正例較高分的機率」。AUC 的優點是與門檻無關、與類別比例相對穩健,適合比較模型整體排序能力。

別只看 AUC:類別極度不平衡時改看 PR 曲線

當負類遠多於正類(如詐欺偵測),ROC-AUC 可能過度樂觀——因為 FPR 的分母 TN 很大,少量 FP 幾乎不動 FPR。此時改看 Precision–Recall 曲線更誠實,它直接盯著「抓到的正例品質」,不受巨量 TN 稀釋。

重點回顧

  • 不平衡資料別信 Accuracy;先看混淆矩陣。
  • Precision 管「誤報少」、Recall 管「漏抓少」,依代價取捨。
  • F1 用調和平均綜合兩者,懲罰「一邊很爛」。
  • ROC/AUC 看「跨所有門檻」的排序能力;極度不平衡時改看 PR 曲線。

深入探討(研究所視角)

各指標的選擇本質上對應不同的代價結構與決策理論。在貝氏決策框架下,最佳門檻由誤分類代價決定:若偽陰性代價 $c_{FN}$、偽陽性代價 $c_{FP}$,最適門檻滿足 $\frac{P(y{=}1\mid x)}{P(y{=}0\mid x)} > \frac{c_{FP}}{c_{FN}}$;F1 與 AUC 都只是「不指定明確代價」時的折衷代理。ROC 曲線的凸包(convex hull) 對應所有可由隨機化分類器達成的 (FPR, TPR) 組合,凸包外的點不可達——這把模型選擇連到等代價線(iso-cost line)與 ROC 的切點。

統計上,AUC 等價於 Mann–Whitney U 統計量正規化後的值($\text{AUC} = U/(n_1 n_0)$),因此它的標準誤與假設檢定可借用無母數秩檢定理論(Hanley–McNeil 法),讓「兩模型 AUC 是否顯著不同」成為可推論的問題;DeLong 檢定即據此處理相關 ROC 的共變異數。

機器學習實務還需處理多分類延伸:micro-average(彙總所有類別的 TP/FP/FN 再算,受多數類主導)與 macro-average(各類別先算再平均,平等對待每類)給出不同的 F1,選擇取決於你在意「整體樣本」還是「每個類別」。校準(calibration) 是另一條正交軸——AUC 只衡量排序好壞,不保證輸出機率「準」;一個 AUC=0.9 的模型仍可能系統性高估風險,需用可靠度圖(reliability diagram)與 Brier score、Platt scaling/isotonic regression 另行校準。這些都把分類評估從「單一數字」推向「依決策情境選對指標」的統計思維,也正是連接統計學與機器學習的核心橋樑(延伸閱讀可接「優智慧 AI」專區)。

AI 共讀助教正在陪你讀:分類模型評估指標:混淆矩陣、Precision、Recall、F1 與 ROC-AUC
嗨!我是這篇文章的共讀助教,只根據〈分類模型評估指標:混淆矩陣、Precision、Recall、F1 與 ROC-AUC〉的內容回答。可以問我「解釋某段」「舉個例子」「出題考我」,或反白文中段落後點下方「解釋選取段落」。