Memahami kurva ROC

57

Saya mengalami kesulitan memahami kurva ROC.

Apakah ada keuntungan / peningkatan di area di bawah kurva ROC jika saya membangun model yang berbeda dari setiap subset unik dari set pelatihan dan menggunakannya untuk menghasilkan probabilitas? Sebagai contoh, jika memiliki nilai-nilai { a , a , a , a , b , b , b , b } , dan saya membangun model yang A dengan menggunakan suatu dari nilai-nilai 1-4 dari y dan nilai-nilai 8-9 dari y dan membangun model B dengan menggunakan data kereta tetap. Akhirnya, hasilkan probabilitas. Setiap pemikiran / komentar akan sangat dihargai.y{a,a,a,a,b,b,b,b}AayyB

Berikut ini adalah kode r untuk penjelasan yang lebih baik untuk pertanyaan saya:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Jadi pertanyaan saya adalah, area di bawah ROC kurva pred_combinevs pred_full.

Tay Shin
sumber
3
Contoh yang lebih baik akan melakukan banyak hal untuk meningkatkan pertanyaan.
mpiktas
Pemahaman saya adalah bahwa Anda ingin meningkatkan AUC dengan memilih beberapa sampel tertentu? Jika itu tujuan Anda, saya sangat percaya bahwa pendekatan pemilihan sampel yang bias ini sepenuhnya salah, setidaknya jika tujuan Anda adalah menemukan ukuran yang baik untuk kinerja klasifikasi.
rapaio
2
lihat demo interaktif ROC
Alleo

Jawaban:

174

Saya tidak yakin saya mendapat pertanyaan, tetapi karena judulnya meminta penjelasan kurva ROC, saya akan coba.

Kurva ROC digunakan untuk melihat seberapa baik klasifikasi Anda dapat memisahkan contoh positif dan negatif dan untuk mengidentifikasi ambang batas terbaik untuk memisahkan mereka.

Untuk dapat menggunakan kurva ROC, classifier Anda harus di- rangking - yaitu, itu harus bisa memberi peringkat contoh-contoh sedemikian rupa sehingga yang dengan peringkat lebih tinggi lebih cenderung positif. Sebagai contoh, Regresi Logistik menghasilkan probabilitas, yang merupakan skor yang dapat Anda gunakan untuk peringkat.

Menggambar kurva ROC

Diberikan kumpulan data dan klasifikasi peringkat:

  • memesan contoh uji dengan skor dari tertinggi ke terendah
  • (0,0)
  • x
    • x1/pos
    • x1/neg

posneg

Gambar animasi gif yang bagus ini harus menggambarkan proses ini dengan lebih jelas

membangun kurva

yx

Area Di Bawah ROC

area di bawah roc

Area di bawah Kurva ROC (berbayang) secara alami menunjukkan seberapa jauh kurva dari garis dasar. Untuk garis dasar adalah 0,5, dan untuk pengklasifikasi yang sempurna adalah 1.

Anda dapat membaca lebih lanjut tentang AUC ROC dalam pertanyaan ini: Apa kepanjangan dari AUC dan apa itu?

Memilih Ambang Batas Terbaik

Saya akan menguraikan secara singkat proses memilih ambang batas terbaik, dan rincian lebih lanjut dapat ditemukan dalam referensi.

Untuk memilih ambang terbaik, Anda melihat setiap titik kurva ROC Anda sebagai classifier terpisah. Pengklasifikasi mini ini menggunakan skor yang didapat titik sebagai batas antara + dan - (yaitu mengklasifikasikan semua + poin di atas yang sekarang)

Bergantung pada fraksi pos / negatif dalam kumpulan data kami - sejajar dengan garis dasar jika 50% / 50% - Anda membangun Garis Akurasi ISO dan mengambil yang dengan akurasi terbaik.

Ini gambar yang menggambarkan hal itu dan untuk detailnya saya mengundang Anda lagi ke referensi

memilih ambang batas terbaik

Referensi

Alexey Grigorev
sumber
Terima kasih atas komentarnya! Saya minta maaf karena saya tidak bisa menjawab pertanyaan Anda, sepertinya saya harus memiliki lebih dari 15 reputasi :(
Tay Shin
Hanya ingin tahu, ukuran langkah Anda harus bergantung pada jumlah label positif / negatif yang dihasilkan oleh pengklasifikasi Anda, benar? Yaitu Di gif, ukuran langkah ke atas adalah 0,1, jika Anda memiliki label ekstra positif (di tempat label negatif), maka "kurva" akan berakhir pada 1,1 pada sumbu vertikal (atau mungkin saya kehilangan sesuatu ?). Jadi, dalam hal ini ukuran langkah Anda harus lebih kecil?
kyphos
Tidak, ukuran langkah tergantung pada jumlah contoh positif / negatif dalam dataset, bukan pada keakuratan classifier.
Alexey Grigorev
2
@ung mengerti. Alexey: alih-alih contoh positif dan negatif, saya pikir seharusnya: positif benar dan positif salah. Anda mungkin dapat melihat edisi saya dari jawabannya, yang dikembalikan oleh gung. terima kasih
Escachator
3
@AlexeyGrigorev, suka balasan yang Anda berikan dan pilih. Saya tidak yakin apakah ada dua definisi ROC. Saya merujuk pada definisi ROC di sini ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), sumbu x harus berupa tingkat positif palsu, yaitu (# prediksi menjadi positif, tetapi harus negatif) / (# total negatif), saya pikir dalam referensi, saya pikir sumbu x tidak menggambar tingkat positif palsu, yang tidak mempertimbangkan (# total negatif)?
Lin Ma