歡迎來到分類模型效能的世界!
在我們探索 CS2 課程中機器學習的旅程裡,我們已經學會了如何建立預測結果的模型。但我們如何知道模型到底好不好呢?假設一位精算師建立了一個模型來預測保單持有人是否會失效(終止保單),如果模型對所有人都說「不」,它的準確度可能高達 90%,因為大多數人都不會失效——但這對業務來說完全沒用!
在本章中,我們將學習如何運用混淆矩陣 (Confusion Matrix)、精確率 (Precision)、召回率 (Recall) 和 ROC 曲線等工具,超越單純的準確度。這些指標能幫助我們理解二元分類器的優缺點。如果這些術語聽起來有點嚇人,別擔心;我們會一步步為你拆解!
1. 基礎:混淆矩陣
在計算任何高級分數之前,我們需要先整理模型的結果。混淆矩陣是一個總結分類算法效能的表格。對於二元分類器(只有兩種可能結果:正類 Positive 或 負類 Negative),該矩陣如下所示:
實際正類 (Actual Positive):事件確實發生了。
實際負類 (Actual Negative):事件沒有發生。
預測正類 (Predicted Positive):我們的模型預測事件會發生。
預測負類 (Predicted Negative):我們的模型預測事件不會發生。
這產生了四個象限:
- 真陽性 (True Positive, TP):我們預測為正類,結果確實是正類。(成功!)
- 真陰性 (True Negative, TN):我們預測為負類,結果確實是負類。(成功!)
- 假陽性 (False Positive, FP):我們預測為正類,但實際是負類。(這是第一型錯誤——可以想像成「誤報」。)
- 假陰性 (False Negative, FN):我們預測為負類,但實際是正類。(這是第二型錯誤——可以想像成「漏網之魚」。)
煙霧探測器的比喻
將煙霧探測器想像成一個二元分類器:
- TP:發生火災,警報響起。(很好!)
- TN:沒有火災,警報保持安靜。(很好!)
- FP:你烤焦了麵包(並無火災),但警報響起。(討厭的誤報。)
- FN:發生大火,但警報卻沒響。(危險的漏報!)
快速回顧:混淆矩陣本身不是一個指標;它是我們用來計算所有其他指標的數據源!
2. 基本效能指標
現在我們有了 TP、TN、FP 和 FN,可以開始計算分數了。
準確度 (Accuracy)
這是最直觀的指標。它問的是:「整體而言,模型預測對了多少次?」
\( \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} \)
陷阱:如果你的數據「不平衡」,準確度會非常有誤導性。如果 99% 的保單持有人不會提出索償,一個只會預測所有人「不索償」的模型會有 99% 的準確度,但它永遠無法幫你找出那 1% 真正提出索償的人!
精確率 (Precision)
精確率關注的是預測正類 (Predicted Positives)。它問的是:「在模型所有預測為『正類』的次數中,有多少次實際是『正類』?」
\( \text{Precision} = \frac{TP}{TP + FP} \)
當假陽性的代價很高時使用(例如,如果你要指控某人保險欺詐,你會希望非常有把握)。
召回率 (Recall)(也稱為靈敏度 Sensitivity)
召回率關注的是實際正類 (Actual Positives)。它問的是:「在所有實際存在的『正類』中,我們成功捕捉到了多少?」
\( \text{Recall} = \frac{TP}{TP + FN} \)
當假陰性的代價很高時使用(例如,在人壽保險申請中漏掉重大疾病診斷)。
特異度 (Specificity)
這是召回率的「負類」版本。它問的是:「在所有實際存在的『負類』中,我們正確識別了多少個負類?」
\( \text{Specificity} = \frac{TN}{TN + FP} \)
記憶小撇步:
Precision(精確率)關注 Predictions(預測結果,分母為預測行)。
Recall(召回率)關注 Reality(現實情況,分母為實際列)。
3. F1 分數:平衡的藝術
有時你需要一個在精確率和召回率兩方面表現都不錯的模型。然而,通常存在一種取捨:當你試圖提高其中一項時,另一項往往會下降。F1 分數是一個結合兩者的單一數值,使用了調和平均數 (harmonic mean)。
\( F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} \)
為什麼使用調和平均數? 與簡單平均數不同,調和平均數會懲罰極端值。如果你的精確率是 1.0 但召回率是 0.0,你的 F1 分數會是 0,而不是 0.5。這使它成為處理不平衡數據集時非常穩健的指標。
重點總結:當你需要平衡「儘可能多捕捉案例(召回率)」與「確保預測可靠(精確率)」時,請使用 F1 分數。
4. 診斷工具:ROC 曲線與 AUC
大多數分類器輸出的不僅僅是「是」或「否」。相反,它們會輸出一個機率(例如,「此人失效的可能性為 85%」)。要將其轉化為「是/否」的決策,我們必須選擇一個閾值 (threshold)(例如,高於 50% 的都是「是」)。
如果我們改變該閾值,我們的 TP 和 FP 比率也會隨之改變。ROC 曲線 (接收者操作特徵曲線) 是一個繪製以下內容的圖表:
- Y 軸:真陽性率 (Recall)
- X 軸:假陽性率 (1 - Specificity)
當你降低閾值時,你會捕捉到更多的正類(更高的召回率),但也會觸發更多的誤報(更高的假陽性率)。
曲線下面積 (AUC)
AUC 是 ROC 曲線下的總面積。它為我們提供了一個單一數值,用於評估模型在所有可能閾值下的效能。
- AUC = 1.0:完美模型。
- AUC = 0.5:不比隨機猜測好(一條對角線)。
- AUC < 0.5:模型實際上比隨機還差!
你知道嗎? ROC 曲線最初是在第二次世界大戰期間為雷達操作員開發的,旨在幫助他們區分日本飛機與隨機噪聲(如鳥群)!
5. 總結與常見錯誤
應避免的常見錯誤:
- 混淆召回率與精確率:請務必檢查你的分母!召回率關注的是實際群體;精確率關注的是預測群體。
- 忽略背景:在 IFoA 考試中,請注意具體情境。如果題目是關於危及生命的疾病,召回率通常比精確率更重要。如果是一個低成本的營銷活動,精確率可能就沒那麼關鍵。
- 僅依賴準確度:在未檢查類別平衡情況下,永遠不要相信一個很高的準確度分數。
快速回顧箱:
混淆矩陣:TP, TN, FP, FN。
準確度:正確數 / 總數。
精確率:TP / (TP + FP)。
召回率:TP / (TP + FN)。
F1 分數:精確率與召回率的平衡。
ROC 曲線:可視化召回率與誤報之間的取捨。
AUC:ROC 曲線的「評分」(0.5 到 1.0)。
你已經成功完成了核心評估指標的學習!這些工具對於任何使用預測模型的精算師來說都是必不可少的,能確保我們的風險得到準確衡量,且模型保持可靠。