“好”分類器破壞了我的 Precision-Recall 曲線。發生了什麼?
我正在處理不平衡的數據,其中每個 class=1 大約有 40 個 class=0 案例。我可以使用單個特徵合理地區分類別,並且在 6 個特徵和平衡數據上訓練樸素貝葉斯和 SVM 分類器產生更好的區分(下面的 ROC 曲線)。
那很好,我認為我做得很好。然而,這個特定問題的慣例是在精度水平上預測命中,通常在 50% 到 90% 之間。例如“我們以 90% 的精度檢測到一些命中。” 當我嘗試這個時,我可以從分類器中獲得的最大精度約為 25%(黑線,下方的 PR 曲線)。
我可以將其理解為類不平衡問題,因為 PR 曲線對不平衡很敏感,而 ROC 曲線則不敏感。但是,這種不平衡似乎不會影響單個特徵:我可以使用單個特徵(藍色和青色)獲得相當高的精度。
我不明白髮生了什麼事。如果公關領域的一切都表現不佳,我可以理解,因為畢竟數據非常不平衡。如果分類器在 ROC和PR 空間中看起來很糟糕,我也可以理解——也許它們只是糟糕的分類器。但是**,按照 ROC 的判斷,如何使分類器變得更好,而按照 Precision-Recall 的判斷,分類器變得更糟**?
編輯:我注意到在低 TPR/Recall 區域(TPR 介於 0 和 0.35 之間),各個特徵在 ROC 和 PR 曲線中始終優於分類器。也許我的困惑是因為 ROC 曲線“強調”了高 TPR 區域(分類器做得很好),而 PR 曲線強調了低 TPR (分類器更差)。
編輯 2:對非平衡數據進行訓練,即與原始數據具有相同的不平衡性,使 PR 曲線恢復生機(見下文)。我猜我的問題是不正確地訓練分類器,但我不完全理解發生了什麼。
我發現,當類中度不平衡(即不低於 100:1)與閾值不變度量(如 AUC)結合使用時,使用下採樣/上採樣並沒有令人難以置信的好處。抽樣對 F1 分數和準確度等指標的影響最大,因為抽樣人為地將閾值移動到更接近 ROC 曲線上可能被視為“最佳”位置的位置。您可以在插入符號文檔中看到一個示例。
我不同意@Chris,因為擁有良好的 AUC 比精確更好,因為它與問題的背景完全相關。此外,當類不平衡時,具有良好的 AUC 並不一定轉化為良好的 Precision-Recall 曲線。如果模型顯示出良好的 AUC,但早期檢索仍然很差,那麼 Precision-Recall 曲線將有很多不足之處。您可以在這個對類似問題的回答中看到一個很好的例子。出於這個原因,Saito 等人。當您的類別不平衡時,建議使用 Precision-Recall 曲線下的面積而不是 AUC。