Bagaimana Anda menghasilkan kurva ROC untuk validasi silang leave-one-out?

10

Ketika melakukan validasi silang 5 kali lipat (misalnya), biasanya menghitung kurva ROC terpisah untuk masing-masing dari 5 lipatan dan sering kali kurva ROC rata-rata dengan std. dev. ditampilkan sebagai ketebalan kurva.

Namun, untuk LOO cross-validation, di mana hanya ada satu titik data pengujian di setiap lipatan, tampaknya tidak masuk akal untuk menghitung "kurva" ROC untuk titik data tunggal ini.

Saya telah mengambil semua titik data pengujian saya (bersama dengan nilai-p yang dihitung secara terpisah) dan menggabungkannya ke dalam satu set besar untuk menghitung satu kurva ROC, tetapi apakah ini hal yang secara statistik halal untuk dilakukan?

Apa cara yang tepat untuk menerapkan analisis ROC ketika jumlah titik data dalam setiap lipatan adalah satu (seperti dalam kasus validasi silang LOO)?

pengguna1121
sumber
Mengapa? Apa yang ingin Anda capai dengan makhluk seperti itu?
Saya perlu menganalisis kinerja prediksi keseluruhan di berbagai ambang batas p-value, dan kurva ROC adalah apa yang secara tradisional saya gunakan untuk setiap jenis validasi silang lainnya. Jadi pada dasarnya alasan yang sama bahwa analisis ROC berguna setiap validasi k-fold cross. Jika ada pendekatan analog yang berbeda untuk LOO xval maka itu juga bagus untuk diketahui. Selain itu, saya akan melakukan sesuatu seperti 10 kali lipat xval jika saya memiliki data yang cukup dan ini tidak akan menjadi masalah.
user1121
1
Saya akan mengatakan Anda melakukannya dengan masuk akal, cukup membuat kurva ROC tunggal menggunakan label yang benar dan nilai prediksi untuk setiap kasus (di mana kasus itu adalah bertahan)
B_Miner

Jawaban:

15

Jika classifier menampilkan probabilitas, maka menggabungkan semua output titik uji untuk kurva ROC tunggal adalah tepat. Jika tidak, maka skala output dari classifier dengan cara yang akan membuatnya langsung sebanding di seluruh classifier. Misalnya, Anda menggunakan Analisis Diskriminan Linier. Latih classifier dan kemudian letakkan data pelatihan melalui classifier. Pelajari dua bobot: parameter skala (standar deviasi dari output classifier, setelah mengurangkan rata-rata kelas), dan parameter shift (rata-rata dari kelas pertama). Gunakan parameter ini untuk menormalkan output mentah dari setiap classifier LDA melaluiσμrn=(rμ)/σ, dan kemudian Anda bisa membuat kurva ROC dari himpunan output yang dinormalisasi. Ini memiliki peringatan bahwa Anda memperkirakan lebih banyak parameter, dan dengan demikian hasilnya mungkin sedikit menyimpang daripada jika Anda membuat kurva ROC berdasarkan pada set tes terpisah.

Jika tidak mungkin untuk menormalkan output classifier atau mengubahnya menjadi probabilitas, maka analisis ROC berdasarkan LOO-CV tidak tepat.

Benhamner
sumber