Kelas yang diprediksi dari regresi logistik (biner) ditentukan dengan menggunakan ambang pada probabilitas keanggotaan kelas yang dihasilkan oleh model. Seperti yang saya pahami, biasanya 0,5 digunakan secara default.
Tetapi memvariasikan ambang akan mengubah klasifikasi yang diprediksi. Apakah ini berarti ambangnya adalah hiperparameter? Jika demikian, mengapa (misalnya) tidak mungkin untuk dengan mudah mencari kisi ambang menggunakan metode scikit-learn GridSearchCV
(seperti yang Anda lakukan untuk parameter regularisasi C
).
Jawaban:
Ambang keputusan membuat pertukaran antara jumlah positif yang Anda prediksi dan jumlah negatif yang Anda prediksi - karena, secara tautologis, meningkatkan ambang keputusan akan mengurangi jumlah positif yang Anda prediksi dan meningkatkan jumlah negatif yang Anda prediksi Anda memprediksi.
Ambang keputusan bukan parameter-hiper dalam arti penyetelan model karena tidak mengubah fleksibilitas model.
Cara Anda berpikir tentang kata "tune" dalam konteks ambang keputusan berbeda dari bagaimana parameter-hiper disetel. MengubahC dan parameter hyper model lainnya mengubah model(misalnya, koefisien regresi logistik akan berbeda), sementara menyesuaikan ambang hanya dapat melakukan dua hal: menukar TP untuk FN, dan FP untuk TN. Namun, modelnya tetap sama, karena ini tidak mengubah koefisien. (Hal yang sama berlaku untuk model yang tidak memiliki koefisien, seperti hutan acak: mengubah ambang batas tidak mengubah apa pun tentang pohon.) Jadi dalam arti yang sempit, Anda benar bahwa menemukan trade-off terbaik di antara kesalahan adalah "tuning," tetapi Anda salah dalam berpikir bahwa mengubah ambang batas terkait dengan parameter-parameter model lain dengan cara yang dioptimalkan oleh
GridSearchCV
.Dengan kata lain, mengubah ambang keputusan mencerminkan pilihan Anda tentang berapa banyak Positif Salah dan Negatif Palsu yang ingin Anda miliki. Pertimbangkan hipotesis bahwa Anda menetapkan ambang keputusan ke nilai yang sepenuhnya tidak masuk akal seperti -1. Semua probabilitas adalah non-negatif, jadi dengan ambang ini Anda akan memprediksi "positif" untuk setiap pengamatan. Dari perspektif tertentu, ini bagus, karena tingkat negatif palsu Anda adalah 0,0. Namun, tingkat positif palsu Anda juga pada tingkat paling tinggi 1,0, jadi dalam hal itu pilihan Anda untuk ambang -1 adalah mengerikan.
Yang ideal, tentu saja, adalah memiliki TPR 1,0 dan FPR 0,0 dan FNR 0,0. Tapi ini biasanya tidak mungkin dalam aplikasi dunia nyata, jadi pertanyaannya kemudian menjadi "berapa banyak FPR yang bersedia saya terima untuk berapa banyak TPR?" Dan ini adalah motivasi dari kurva roc .
sumber
GridSearchCV
Ya, itu agak aneh. Ini adalah hiperparameter dari aturan keputusan Anda , tetapi bukan regresi yang mendasarinya.
Ini adalah kesalahan desain di sklearn. Praktik terbaik untuk sebagian besar skenario klasifikasi adalah menyesuaikan model yang mendasarinya (yang memprediksi probabilitas) menggunakan beberapa ukuran kualitas probabilitas ini (seperti log-loss dalam regresi logistik). Setelah itu, ambang batas keputusan tentang probabilitas ini harus disesuaikan untuk mengoptimalkan beberapa tujuan bisnis dari aturan klasifikasi Anda. Perpustakaan harus membuatnya mudah untuk mengoptimalkan ambang keputusan berdasarkan beberapa ukuran kualitas, tapi saya tidak percaya itu melakukannya dengan baik.
Saya pikir ini adalah salah satu tempat sklearn yang salah. Perpustakaan mencakup metode
predict
,, pada semua model klasifikasi yang ambang di0.5
. Metode ini tidak berguna, dan saya sangat menganjurkan untuk tidak pernah memohonnya. Sangat disayangkan bahwa sklearn tidak mendorong alur kerja yang lebih baik.sumber
predict
tentang pilihan default metode 0,5 sebagai cutoff, tetapiGridSearchCV
menerimascorer
objek yang dapat menyetel model sehubungan dengan kehilangan cross-entropy out-of-sample. Apakah saya kehilangan poin Anda?