ROC 曲線(接收者操作特性曲線) 是什麼?
ROC Curve:ROC 曲線(接收者操作特性曲線) 的完整解釋
透過改變分類閾值,以真陽性率(召回率)為縱軸、假陽性率為橫軸繪製的曲線,用於評估二元分類模型在各閾值下的辨別能力。
ROC 曲線的起源
ROC 曲線起源於二戰時期的雷達信號偵測理論(故名「接收者操作特性」),用於分析雷達操作員在不同敏感度設定下的信號偵測能力。1970 年代被引入醫療診斷領域,後來在機器學習模型評估中廣泛使用。ROC 曲線的優勢在於它對類別不平衡問題不敏感,且能在不依賴特定閾值的情況下評估模型的整體辨別能力。
ROC 曲線的構成
兩個關鍵指標
- 真陽性率(TPR / Sensitivity / Recall) = TP / (TP + FN):縱軸,越高越好,代表正類被識別出的比例
- 假陽性率(FPR) = FP / (FP + TN):橫軸,越低越好,代表負類被誤判為正類的比例(等於 1 - Specificity)
繪製過程
- 對測試集的每個樣本,模型輸出一個預測概率分數
- 從高到低掃描所有可能的決策閾值(或直接按分數排序)
- 在每個閾值下計算對應的 TPR 和 FPR,記為座標點
- 將所有點連接成曲線
典型形態
- 對角線(y = x):代表隨機猜測的基準線,AUC = 0.5
- 左上角附近的曲線:代表高性能模型(TPR 高、FPR 低)
- 曲線下凸(向左上突起):模型辨別能力優於隨機
AUC(曲線下面積)
AUC(Area Under the ROC Curve)是 ROC 曲線最常用的彙總指標,計算整個曲線下方的面積,範圍在 0 到 1 之間:
- AUC = 1.0:完美分類器,不存在任何錯誤
- AUC = 0.9-1.0:優秀
- AUC = 0.8-0.9:良好
- AUC = 0.7-0.8:尚可接受
- AUC = 0.5-0.6:接近隨機
- AUC < 0.5:比隨機更差(模型方向顛倒)
AUC 的概率解釋:AUC 等於隨機抽取一個正類樣本和一個負類樣本,模型給正類樣本打出更高分數的機率,這使得 AUC 具有直觀的統計意義。
ROC 曲線的應用場景
- 模型篩選:比較多個模型的 AUC,快速判斷哪個模型的整體辨別能力更強
- 閾值選擇:根據業務需求(如最大化 TPR 同時限制 FPR 在某閾值以下)從曲線上選取合適的操作點
- 醫療診斷:評估新型診斷工具相對於現有標準的改進程度
- 信用評分:評估評分模型對好壞客戶的區分能力(通常以 Gini 係數 = 2 × AUC - 1 表達)
選擇最佳閾值的方法
不同業務目標對應不同的閾值選擇策略:
- Youden Index(J):選擇 TPR - FPR 最大的點,即曲線到對角線垂直距離最大處
- 最近左上角點:選擇距離 (0, 1) 點最近的點,盡量同時提高 TPR 和降低 FPR
- 固定 FPR 上限:如醫療篩檢要求 FPR ≤ 5%,在此限制下找最高 TPR 的點
- 業務代價函數:將 FP 和 FN 的代價加入計算,選取期望代價最小的閾值
ROC 曲線 vs. PR 曲線(精確率-召回率曲線)
在類別嚴重不平衡的情況下,PR 曲線(Precision-Recall Curve)往往比 ROC 曲線更具判別性:
- ROC 曲線包含 FPR,而 FPR 的分母是 TN + FP(負類總數),當負類數量遠大於正類時,即使有大量 FP,FPR 也可能很低,讓 ROC 看起來很好但實際 Precision 很差
- PR 曲線聚焦於正類(Precision 和 Recall 的分母都涉及 TP),對不平衡資料更敏感
- 一般原則:資料平衡時用 ROC/AUC;正類稀少(如詐欺偵測、罕見疾病篩查)時用 PR 曲線
局限性
- AUC 是一個彙總指標,可能掩蓋曲線在特定 FPR 範圍的局部差異(如兩條曲線 AUC 相同但形狀不同,在特定業務操作點的表現可能差異很大)
- ROC 曲線假設決策閾值可以自由調整,但實際業務場景中閾值可能有業務約束
- 對多類別問題需要擴展為 macro/micro 平均 AUC,解釋更複雜