Misalkan saya memiliki pengklasifikasi C_1 ... C_n yang terpisah dalam arti bahwa tidak ada dua akan mengembalikan true pada input yang sama (misalnya node dalam pohon keputusan). Saya ingin membangun classifier baru yang merupakan gabungan dari beberapa subset dari ini (misalnya saya ingin memutuskan daun pohon keputusan mana yang memberikan klasifikasi positif). Tentu saja, dalam melakukannya akan ada trade off antara sensitivitas dan nilai prediksi positif. Jadi saya ingin melihat kurva ROC. Pada prinsipnya saya bisa melakukan ini dengan menghitung semua himpunan bagian dari pengklasifikasi dan menghitung sensitivitas dan PPV yang dihasilkan. Namun, ini sangat mahal jika n lebih dari 30 atau lebih. Di sisi lain, hampir pasti ada beberapa kombinasi yang tidak optimal Pareto, jadi mungkin ada beberapa cabang dan strategi terikat, atau sesuatu,
Saya ingin saran tentang apakah pendekatan ini mungkin berhasil dan apakah ada pekerjaan atau jika Anda memiliki ide tentang menghitung secara efisien kurva ROC dalam situasi di atas.
sumber
Jawaban:
Jika saya memahami pertanyaan dengan benar, Anda telah melatih suatu algoritma yang membagi data Anda menjadi cluster terpisah. Sekarang Anda ingin menetapkan prediksi 1 untuk beberapa bagian dari kluster, dan 0 untuk sisanya. Dan di antara himpunan bagian itu, Anda ingin menemukan himpunan bagian yang optimal-pareto, yaitu mereka yang memaksimalkan tingkat positif sejati dengan jumlah prediksi positif yang tetap (ini setara dengan memperbaiki PPV). Apakah itu benar?N 1 0
Ini kedengarannya seperti masalah ransel ! Ukuran cluster adalah "bobot" dan jumlah sampel positif dalam sebuah cluster adalah "nilai", dan Anda ingin mengisi ransel Anda dengan kapasitas tetap dengan nilai sebanyak mungkin.
Ini dia contoh python:
Kode ini akan menghasilkan gambar yang bagus untuk Anda:
Titik biru adalah (FPR, TPR) tuple untuk semua210 himpunan bagian, dan garis merah menghubungkan (FPR, TPR) untuk himpunan optimal pareto.
Dan sekarang sedikit garam: Anda tidak perlu repot tentang himpunan bagian sama sekali ! Apa yang saya lakukan adalah menyortir daun pohon berdasarkan fraksi sampel positif di masing-masing. Tapi yang saya dapatkan adalah kurva ROC untuk prediksi probabilitas pohon. Ini berarti, Anda tidak dapat mengungguli pohon dengan memetik daunnya berdasarkan frekuensi target pada set pelatihan.
Anda dapat bersantai dan tetap menggunakan prediksi probabilistik biasa :)
sumber
Saya mungkin menyarankan agar Anda menggunakan metode serakah. Berikan classifier untuk memulai, Anda akan menyertakan classifier yang membuat ansambel mendapatkan peningkatan kinerja terbaik. Jika tidak ada peningkatan yang bisa dilakukan, termasuk lebih banyak pengklasifikasi, maka berhentilah. Anda akan mulai dengan setiap pengklasifikasi. Kompleksitas paling banyak adalah N * N.
Saya punya satu pertanyaan lagi, Apa yang Anda maksud dengan "Pareto optimal", terutama dalam konteks Anda? Saya menemukan dari wiki penjelasan ini, https://en.wikipedia.org/wiki/Pareto_efficiency
Peningkatan untuk efisiensi Pareto adalah untuk setiap peserta, yang mungkin sesuai dengan masing-masing pengklasifikasi. Bagaimana Anda mendefinisikan peningkatan lebih dari satu classifier?
sumber