Saya memiliki model regresi logistik (cocok melalui glmnet di R dengan regularisasi jaring elastis), dan saya ingin memaksimalkan perbedaan antara positif benar dan positif palsu. Untuk melakukan ini, prosedur berikut muncul dalam pikiran:
- Sesuai dengan model regresi logistik standar
- Dengan menggunakan ambang prediksi 0,5, identifikasi semua prediksi positif
- Tetapkan bobot 1 untuk pengamatan yang diprediksi secara positif, 0 untuk semua lainnya
- Fit model regresi logistik tertimbang
Apa yang akan menjadi kelemahan dengan pendekatan ini? Apa cara yang benar untuk melanjutkan masalah ini?
Alasan ingin memaksimalkan perbedaan antara jumlah positif sejati dan negatif palsu adalah karena desain aplikasi saya. Sebagai bagian dari proyek kelas, saya membangun partisipan otonom di pasar online - jika model saya memperkirakan ia dapat membeli sesuatu dan menjualnya nanti dengan harga yang lebih tinggi, ia menempatkan penawaran. Saya ingin tetap berpegang pada regresi logistik dan hasil keluaran biner (menang, kalah) berdasarkan biaya tetap dan kenaikan harga satuan (saya mendapatkan atau kehilangan jumlah yang sama pada setiap transaksi). Positif palsu menyakiti saya karena itu berarti saya membeli sesuatu dan tidak dapat menjualnya dengan harga lebih tinggi. Namun, negatif palsu tidak menyakiti saya (hanya dalam hal biaya peluang) karena itu hanya berarti jika saya tidak membeli, tetapi jika saya membelinya, saya akan menghasilkan uang. Demikian pula,
Saya setuju bahwa cut-off 0,5 sepenuhnya arbitrer, dan ketika saya mengoptimalkan model dari langkah 1 pada ambang prediksi yang menghasilkan perbedaan tertinggi antara positif benar / salah, ternyata mendekati 0,4. Saya pikir ini karena sifat data saya yang miring - rasio antara negatif dan positif adalah sekitar 1: 3.
Saat ini, saya mengikuti langkah-langkah berikut:
- Membagi data menjadi pelatihan / tes
- Model yang sesuai pada pelatihan, membuat prediksi dalam set tes dan menghitung perbedaan antara positif benar / salah
- Fit model on full, buat prediksi dalam set uji dan hitung selisih antara true / false positif
Perbedaan antara benar / salah positif lebih kecil pada langkah # 3 daripada di langkah # 2, meskipun set pelatihan menjadi bagian dari set lengkap. Karena saya tidak peduli apakah model di # 3 memiliki lebih banyak negatif yang benar dan negatif yang lebih sedikit, apakah ada yang bisa saya lakukan tanpa mengubah fungsi kemungkinan itu sendiri?