Keuntungan dari kurva ROC

15

Apa keuntungan dari kurva ROC?

Sebagai contoh, saya mengklasifikasikan beberapa gambar yang merupakan masalah klasifikasi biner. Saya mengekstraksi sekitar 500 fitur dan menerapkan algoritma pemilihan fitur untuk memilih satu set fitur kemudian saya menerapkan SVM untuk klasifikasi. Dalam hal ini, bagaimana saya bisa mendapatkan kurva ROC? Haruskah saya mengubah nilai ambang batas dari algoritma pemilihan fitur saya dan mendapatkan sensitivitas dan spesifisitas dari output untuk menggambar kurva ROC?

Dalam kasus saya, apa tujuan membuat kurva ROC?

pengguna570593
sumber
2
"Pengantar analisis ROC" oleh Tom Fawcett membantu saya untuk lebih memahami kurva ROC. Anda mungkin menikmatinya jika Anda mencari literatur tambahan tentang topik tersebut.
Alexander
Oke tapi apa yang akan Anda lakukan untuk membandingkan dua pengklasifikasi? Jika mereka menggunakan ambang batas sehingga spesifisitas niether atau sensitivitas sangat cocok, saya rasa tidak mudah untuk membandingkan tanpa melihat lebih banyak poitns di ROC.
Michael R. Chernick
Jarang cocok untuk mengembangkan pengklasifikasi, dan kesalahan klasifikasi adalah aturan penilaian yang tidak tepat. Ada banyak metode daya tinggi untuk membandingkan kualitas prediksi yang benar, dan mereka lebih intuitif daripada kurva ROC. Lihat misalnya ini .
Frank Harrell

Jawaban:

13

Banyak algoritma klasifikasi biner menghitung semacam skor klasifikasi (kadang-kadang tetapi tidak selalu ini adalah kemungkinan berada dalam keadaan target), dan mereka mengklasifikasikan berdasarkan apakah skor berada di atas ambang batas tertentu atau tidak. Melihat kurva ROC memungkinkan Anda melihat pertukaran antara sensitivitas dan spesifisitas untuk semua ambang batas yang mungkin, bukan hanya yang dipilih oleh teknik pemodelan. Tujuan klasifikasi yang berbeda mungkin membuat satu titik pada kurva lebih cocok untuk satu tugas dan yang lainnya lebih cocok untuk tugas yang berbeda, sehingga melihat kurva ROC adalah cara untuk menilai model yang independen dari pilihan ambang batas.

Michael McGowan
sumber
Terima kasih atas balasannya. Ini sangat berguna. Berdasarkan kurva ROC apakah ada pula untuk menentukan ambang batas? Dan dalam kasus saya bagaimana saya bisa mendapatkan titik di ruang ROC untuk sensitivitas = 100% atau spesifisitas = 100%. karena saya mengubah ambang batas dari algoritma pemilihan fitur.
user570593
1
Kurva ROC menunjukkan sensitivitas dan spesifisitas pada semua ambang yang memungkinkan, jadi jika Anda menemukan titik yang mewakili tradeoff yang tepat, Anda dapat memilih ambang yang sesuai dengan titik itu pada kurva.
Michael McGowan
Apakah ada cara otomatis untuk memilih pengorbanan yang tepat atau haruskah saya memilih pengorbanan sendiri? Dan dalam kasus saya bagaimana saya bisa mendapatkan titik di ruang ROC untuk sensitivitas = 100% atau spesifisitas = 100%. karena saya mengubah ambang batas dari algoritma pemilihan fitur.
user570593
2
Jika Anda memiliki kriteria yang terdefinisi dengan baik (misalnya memaksimalkan presisi) maka ini dapat otomatis. Tapi pengorbanan yang baik untuk satu masalah mungkin buruk untuk yang lain.
Michael McGowan
2
Sensitivitas atau spesifisitas 100% dapat secara sepele diperoleh dengan menetapkan ambang Anda pada nilai minimum atau maksimum ... apakah itu yang Anda inginkan?
Michael McGowan
11

Kurva ROC tidak informatif dalam 99% kasus yang saya lihat selama beberapa tahun terakhir. Mereka tampaknya dianggap wajib oleh banyak ahli statistik dan bahkan lebih banyak praktisi pembelajaran mesin. Dan pastikan masalah Anda benar-benar masalah klasifikasi dan bukan masalah estimasi risiko. Inti dari masalah dengan kurva ROC adalah bahwa mereka mengundang pengguna untuk menggunakan cutpoint untuk variabel kontinu, dan mereka menggunakan probabilitas mundur, yaitu probabilitas peristiwa yang berada dalam urutan waktu terbalik (sensitivitas dan spesifisitas). Kurva ROC tidak dapat digunakan untuk menemukan pengorbanan yang optimal kecuali dalam kasus yang sangat khusus di mana pengguna aturan keputusan menyerahkan fungsi kehilangan (biaya; utilitas) mereka kepada analis.

Frank Harrell
sumber
Saya tidak sepenuhnya setuju dengan Frank. Saya pikir menggunakan AUC dari ROC sering menjadi masalah. Tapi secara kualitatif saya pikir ini bisa membantu untuk membandingkan algoritma. Hanya dengan melihat spesifisitas dan sensitivitas pada satu titik saja hampir tidak informatif. Saya juga tidak yakin bahwa jawabannya benar-benar menjawab pertanyaan itu karena OP benar-benar ingin tahu dalam kasusnya mengapa ia jatuh ke dalam 99% kasus yang tidak informatif atau 1% yang bersifat inforamtif.
Michael R. Chernick
R2
R2
1
@ Frankharrell Tapi bagaimana Anda membandingkan dua algoritma ketika mereka tidak cocok sangat erat pada spesifisitas dan sensitivitas?
Michael R. Chernick
7
R2χ2R2
1

Setelah membuat kurva ROC, AUC (area di bawah kurva) dapat dihitung. AUC adalah akurasi pengujian di banyak ambang batas. AUC = 1 berarti tes ini sempurna. AUC = .5 berarti melakukan peluang untuk klasifikasi biner.

Jika ada banyak model, AUC menyediakan pengukuran tunggal untuk membandingkan berbagai model. Selalu ada trade-off dengan ukuran apa pun tetapi AUC adalah tempat yang baik untuk memulai.

Brian Spiering
sumber
1
YcDxy
0

AUC tidak membandingkan kelas nyata vs diprediksi satu sama lain. Ini bukan melihat kelas yang diprediksi, tetapi skor prediksi atau probabilitas. Anda dapat melakukan prediksi kelas dengan menerapkan cutoff pada skor ini, katakanlah, setiap sampel yang mendapat skor di bawah 0,5 diklasifikasikan sebagai negatif. Tetapi ROC datang sebelum itu terjadi. Ini bekerja dengan probabilitas skor / kelas.

Dibutuhkan skor ini dan mengurutkan semua sampel sesuai dengan skor itu. Sekarang, setiap kali Anda menemukan sampel positif, kurva ROC membuat langkah maju (sepanjang sumbu y). Setiap kali Anda menemukan sampel negatif, Anda bergerak ke kanan (sepanjang sumbu x). Jika skor itu berbeda untuk kedua kelas, sampel positif didahulukan (biasanya). Itu berarti Anda membuat lebih banyak langkah daripada ke kanan. Lebih jauh ke bawah daftar sampel negatif akan datang, sehingga Anda bergerak ke kiri. Ketika Anda melalui seluruh daftar sampel yang Anda capai di koordinat (1,1) yang sesuai dengan 100% positif dan 100% sampel negatif.

Jika skor memisahkan positif dengan positif dari sampel negatif, Anda berpindah dari (x = 0, y = 0) ke (1,0) dan kemudian dari sana ke (1, 1). Jadi, area di bawah kurva adalah 1.

Jika skor Anda memiliki distribusi yang sama untuk sampel positif dan negatif, probabilitas untuk menemukan sampel positif atau negatif dalam daftar diurutkan adalah sama dan oleh karena itu probabilitas untuk bergerak ke atas atau ke kiri dalam kurva ROC adalah sama. Itulah sebabnya Anda bergerak sepanjang diagonal, karena pada dasarnya Anda bergerak ke atas dan ke kiri, dan ke atas dan ke kiri, dan seterusnya ... yang memberikan nilai AROC sekitar 0,5.

Dalam kasus dataset yang tidak seimbang, ukuran langkahnya berbeda. Jadi, Anda membuat langkah lebih kecil ke kiri (jika Anda memiliki lebih banyak sampel negatif). Itulah sebabnya skornya kurang lebih independen dari ketidakseimbangan.

Jadi dengan kurva ROC, Anda dapat memvisualisasikan bagaimana sampel Anda dipisahkan dan area di bawah kurva dapat menjadi metrik yang sangat baik untuk mengukur kinerja algoritma klasifikasi biner atau variabel apa pun yang dapat digunakan untuk memisahkan kelas.

masukkan deskripsi gambar di sini

Gambar tersebut menunjukkan distribusi yang sama dengan ukuran sampel yang berbeda. Area hitam menunjukkan di mana kurva ROC dari campuran acak dari sampel positif dan negatif akan diharapkan.

Sören
sumber
Grafik ini tidak memberikan wawasan dan memiliki rasio informasi: tinta yang sangat tinggi. Tetap dengan skor akurasi yang tepat: fharrell.com/post/class-damage fharrell.com/post/addvalue
Frank Harrell
Ada jauh lebih banyak informasi dalam grafik ini daripada dalam skor akurasi satu dimensi tunggal. Skor yang sama dapat berasal dari banyak distribusi yang berbeda. Apakah Anda memiliki pengakuan awal? Apakah Anda memiliki beberapa kelas sampel positif yang berperilaku berbeda? Apakah hasil Anda signifikan secara statistik? Semua pertanyaan itu bisa jelas dijawab dengan melihat grafik-grafik itu dan tidak mungkin menjawab dengan skor akurasi tunggal.
Sören
Saya sungguh-sungguh mempertanyakan bahwa konsumen dan analis dapat memperoleh wawasan dari kurva-kurva ini yang hampir sama intuitifnya dengan menunjukkan kurva kalibrasi yang dilapisi dengan histogram resolusi tinggi yang menunjukkan nilai yang diprediksi. Dan setiap titik pada kurva ROC adalah skor akurasi yang tidak tepat.
Frank Harrell
Pemula sering mengalami kesulitan memahami kurva ini. Karena itu, saya tidak akan merekomendasikan untuk menunjukkannya kepada konsumen untuk mengiklankan produk Anda. Saya pikir, di sana Anda menginginkan sesuatu yang lebih sederhana. Kurva lebih dari poin individual sekalipun.
Sören