Saya menggunakan regresi logistik untuk klasifikasi biner. Saya memiliki satu set data besar (kebetulan sangat tidak seimbang: 19: 1). Jadi saya menggunakan scikit-learn's LogisticRegression()
untuk melatih 80% dari data berlabel saya dan kemudian saya memvalidasi dengan 20% lainnya (saya melihat area di bawah ROC serta presisi-recall karena datanya sangat tidak seimbang; saya juga menggunakan model dengan class_weight='auto'
).
Pertanyaan utama saya adalah sebagai berikut: begitu saya mulai membuat prediksi vektor input tidak berlabel (menggunakan predict_proba()
), bagaimana saya bisa tahu fitur mana yang paling berkontribusi terhadap prediksi input tertentu itu ? Saya membayangkan bahwa ini mungkin berbeda dari "fitur yang paling penting" sebagaimana ditentukan secara umum untuk model berdasarkan pada data pelatihan yang diberi label (mis., Besarnya koefisien).
Saya punya ide yang sangat mendasar:
Ambil produk dari komponen nilai input saya dengan nilai absolut dari koefisien fitur saya. Fitur yang paling berkontribusi adalah yang sesuai dengan entri dengan nilai terbesar.
Lakukan (1) tetapi gunakan skor-z untuk semuanya (fitur pelatihan dan input). Saya pikir ini akan menjadi penting karena saya khawatir bahwa beberapa rentang fitur mungkin sangat berbeda dari yang lain dan hanya mengambil produk mungkin tidak menangkap ini; tapi saya rasa koefisien harus mencerminkan rentang jadi mungkin ini tidak masalah.
Pikiran apa pun akan sangat dihargai karena saya baru dalam hal ini. Hal-hal khusus untuk regresi logistik (yaitu, sigmoid bukan hanya fungsi linier) dan referensi apa pun tentang bagaimana menerapkan tindakan spesifik (misalnya, transformasi) dalam scikit-learning akan sangat dihargai karena saya benar-benar melakukan proyek dengan data nyata.