Area di bawah kurva ROC atau area di bawah kurva PR untuk data yang tidak seimbang?

16

Saya memiliki beberapa keraguan tentang ukuran kinerja yang digunakan, area di bawah kurva ROC (TPR sebagai fungsi FPR) atau area di bawah kurva recall-presisi (presisi sebagai fungsi recall).

Data saya tidak seimbang, yaitu jumlah instance negatif jauh lebih besar daripada instance positif.

Saya menggunakan prediksi keluaran weka, sampelnya adalah:

inst#,actual,predicted,prediction
1,2:0,2:0,0.873
2,2:0,2:0,0.972
3,2:0,2:0,0.97
4,2:0,2:0,0.97
5,2:0,2:0,0.97
6,2:0,2:0,0.896
7,2:0,2:0,0.973

Dan saya menggunakan pROC dan pustaka ROCR.

MM
sumber
Anda lupa menyebutkan apa yang ingin Anda capai dengan kurva ini.
Marc Claesen
1
Catatan: sepertinya Anda ingin memilih antara kurva ROC (TPR sebagai fungsi FPR pada seluruh rentang operasi) dan kurva PR (presisi versus penarikan seluruh rentang operasi). Terminologi seperti " AUC-ROC of precision and recall " sangat menyesatkan, jadi saya telah mengedit ini. Tolong kembalikan jika saya salah paham.
Marc Claesen

Jawaban:

27

Pertanyaannya cukup kabur sehingga saya akan menganggap Anda ingin memilih ukuran kinerja yang sesuai untuk membandingkan model yang berbeda. Untuk tinjauan umum yang baik tentang perbedaan utama antara kurva ROC dan PR, Anda dapat merujuk pada makalah berikut: Hubungan Antara Precision-Recall dan Kurva ROC oleh Davis dan Goadrich .

Mengutip Davis dan Goadrich:

Namun, ketika berhadapan dengan dataset sangat miring, kurva Precision-Recall (PR) memberikan gambaran yang lebih informatif tentang kinerja algoritma.

FPR=FPFP+TN,TPR=TPTP+FN.
recSebuahll=TPTP+FN=TPR,halrecsayassayaHain=TPTP+FP

FP

Kurva presisi-recall lebih baik untuk menyoroti perbedaan antara model untuk set data yang sangat tidak seimbang. Jika Anda ingin membandingkan model yang berbeda dalam pengaturan yang tidak seimbang, area di bawah kurva PR kemungkinan akan menunjukkan perbedaan yang lebih besar daripada area di bawah kurva ROC.

Yang mengatakan, kurva ROC jauh lebih umum (bahkan jika mereka kurang cocok). Tergantung pada audiens Anda, kurva ROC mungkin merupakan lingua franca sehingga menggunakan itu mungkin merupakan pilihan yang lebih aman. Jika satu model benar-benar mendominasi yang lain dalam ruang PR (mis. Selalu memiliki presisi yang lebih tinggi di seluruh rentang penarikan), itu juga akan mendominasi dalam ruang ROC. Jika kurva melintas di ruang mana pun mereka juga akan melintas di ruang lainnya. Dengan kata lain, kesimpulan utama akan serupa apa pun kurva yang Anda gunakan.


Iklan tak tahu malu . Sebagai contoh tambahan, Anda bisa melihat pada salah satu makalah saya di mana saya melaporkan kurva ROC dan PR dalam pengaturan yang tidak seimbang. Gambar 3 berisi kurva ROC dan PR untuk model yang identik, jelas menunjukkan perbedaan antara keduanya. Untuk membandingkan area di bawah PR versus area di bawah ROC Anda dapat membandingkan tabel 1-2 (AUPR) dan tabel 3-4 (AUROC) di mana Anda dapat melihat bahwa AUPR menunjukkan perbedaan yang jauh lebih besar antara masing-masing model daripada AUROC. Ini menekankan kesesuaian kurva PR sekali lagi.

Marc Claesen
sumber
Terima kasih untuk penjelasannya. Pertanyaannya sekarang, mengapa kurva PR lebih informatif untuk data yang tidak seimbang? Bagi saya, ROC harus lebih informatif karena mempertimbangkan TPR dan FPR.
MM
1
@ MA mengedit jawaban saya untuk menjelaskan.
Marc Claesen
1
Saya pikir ada campuran dalam persamaan untuk penarikan kembali antara TPR dan FPR, bukan?
Simon Thordal
Anda benar, seharusnya: recall = ... = TPR, bukan FPR. @Marc Claesen, saya pikir hanya Anda yang dapat mengubahnya, karena ketika saya mencoba melakukannya, saya diberitahu bahwa: "Pengeditan harus memiliki setidaknya 6 karakter", jadi tidak mungkin untuk memperbaiki kesalahan ketik kecil, seperti ini.
ponadto
6

Kurva ROC memplot TPR pada sumbu y dan FPR pada sumbu x, tetapi itu tergantung pada apa yang ingin Anda gambarkan. Kecuali ada beberapa alasan untuk merencanakannya secara berbeda di bidang studi Anda, kurva TPR / FPR ROC adalah standar untuk menunjukkan pengorbanan operasi dan saya percaya mereka akan diterima dengan baik.

Precision dan Recall saja bisa menyesatkan karena tidak memperhitungkan negatif sebenarnya.

Underminer
sumber
0

Saya menganggap perbedaan terbesar dalam ROC dan PR AUC fakta bahwa ROC menentukan seberapa baik model Anda dapat "menghitung" kelas positif DAN kelas negatif di mana karena PR AUC benar-benar hanya melihat kelas positif Anda. Jadi dalam situasi kelas yang seimbang dan di mana Anda peduli dengan kelas negatif dan positif, metrik ROC AUC bekerja sangat baik. Ketika Anda memiliki situasi yang tidak seimbang, lebih disukai menggunakan PR AUC, tetapi perlu diingat hanya menentukan seberapa baik model Anda dapat "menghitung" kelas positif!

David
sumber