有同學做了個多分類的預測模型,結局有三個類別,做的模型包括多分類邏輯回歸、隨機森林和決策樹,多分類邏輯回歸是用ROC曲線并報告AUC作為模型評估的,后面兩種模型報告了混淆矩陣,審稿人就提出要統一模型評估指標。那么肯定是統一成ROC了,剛好借這個機會給大家講講ROC在多分類問題情形下的具體使用和做法。
ROC 曲線回顧
ROC 曲線(Receiver Operating Characteristic Curve):展示分類模型的真陽性率(TPR) 和 假陽性率(FPR)的關系。
- 真陽性率 (TPR):模型正確分類正樣本的比例。
- 假陽性率 (FPR):模型錯誤地把負樣本判為正樣本的比例。
其中的邏輯就是分類問題是要看概率閾值進行類別劃分的,取不同的概率閾值,真陽性和假陽性率是不一樣的。ROC曲線就是在所有可能的閾值下,繪制 TPR(縱軸) 對 FPR(橫軸)的曲線。
而AUC(Area Under the Curve)就是ROC 曲線下的面積,反映模型的整體分類能力。AUC = 1,說明模型完美分類;AUC = 0.5,相當于隨機猜測。
多分類 ROC 的挑戰
但是在多分類問題中,模型輸出的不是“正/負”,而是多個類別(如 A、B、C)。與二分類不同,多分類任務中有多個類別,ROC 就無法直接繪制了。這個時候就需要變一下,我們常用兩種方法將多分類任務轉化為多個二分類問題:
- One-vs-Rest (OvR):針對每個類別,將其視為“正類”,其他類別視為“負類”,分別繪制 ROC 曲線。
- One-vs-One (OvO):對每兩個類別分別計算 ROC 曲線。
舉個例子: 假設我們有 3 個類別:蘋果(A)、香蕉(B)、橙子(C)。
- OvR 方法:針對“蘋果 vs. 非蘋果”、“香蕉 vs. 非香蕉”、“橙子 vs. 非橙子”,分別繪制 ROC。
- OvO 方法:只考慮兩兩類別,如“蘋果 vs. 香蕉”、“蘋果 vs. 橙子”、“香蕉 vs. 橙子”。
我們具體來看一下兩種方法。
方法 1:One-vs-Rest (OvR)
每個類別都當作“正類”,其余類別當作“負類”,逐一繪制 ROC 曲線。比如結局有 3 個類別:蘋果(A)、香蕉(B)、橙子(C)