同一個模型,把正例比例從 30% 拖到 0.5%——親眼看 ROC 幾乎不動、PR 曲線直接塌下來。這就是中級最愛考的「ROC 過度樂觀」。
模型本身(鑑別力)完全沒變——變的只有類別比例。ROC 的兩個軸(TPR、FPR)都是「各自類內的比例」,跟兩類的相對數量無關,所以曲線幾乎不動;但 Precision 的分母同時吃 TP 與 FP,負例基數一大、FP 絕對數量暴增,Precision 就被稀釋。這也是為什麼報表上 ROC-AUC 0.97 的詐欺模型,上線後每抓 1 筆真詐欺可能誤攔 20 筆正常交易。
因為 FPR 的分母是全部負例。負例極多時,FP 增加數千筆 FPR 也幾乎不動,ROC 曲線看不見誤報成本。
PR-AUC(或固定 Recall 下的 Precision):兩軸都聚焦正類,能忠實反映「每抓一筆誤傷幾筆」。
predict_proba() 的連續機率。predict() 已用 0.5 門檻切成 0/1,整條曲線只剩一個點——這是實務最常見的評估 bug。
中級科目二、三連兩屆考「ROC-AUC 高但實務差 → 改看 PR-AUC」;常搭配 0.2%~0.8% 的詐欺/故障情境、「每攔 1 筆誤傷 20 筆」的數字敘述。另記:混淆矩陣算不出 AUC、AUC 要餵機率。
等於正例比例。正例 1% 時,隨機猜的 Precision 就是 1%——所以 PR-AUC 0.3 在極度不平衡下可能已經很強。
F1 是「單一門檻」下 Precision 與 Recall 的調和平均;PR-AUC 是「掃過所有門檻」的整體表現。調門檻前看 PR 曲線、定案後報 F1。
理論上對類別比例不敏感(它只看排序),但這正是問題:它「看不見」誤報的絕對成本,不代表它算錯。