Bagaimana cara melakukan Regresi Logistik dengan sejumlah besar fitur?

10

Saya memiliki dataset dengan 330 sampel dan 27 fitur untuk setiap sampel, dengan masalah kelas biner untuk Regresi Logistik.

Menurut "aturan jika sepuluh" saya membutuhkan setidaknya 10 peristiwa untuk setiap fitur untuk dimasukkan. Padahal, saya memiliki dataset yang tidak seimbang, dengan 20% kelas positif dan 80% kelas negatif.

Itu memberi saya hanya 70 peristiwa, yang memungkinkan sekitar 7/8 fitur untuk dimasukkan dalam model Logistik.

Saya ingin mengevaluasi semua fitur sebagai prediktor, saya tidak ingin memilih sendiri fitur apa pun.

Jadi apa yang akan Anda sarankan? Haruskah saya membuat semua kemungkinan 7 kombinasi fitur? Haruskah saya mengevaluasi setiap fitur sendirian dengan model asosiasi dan kemudian hanya memilih yang terbaik untuk model akhir?

Saya juga ingin tahu tentang penanganan fitur-fitur kategorikal dan kontinu, dapatkah saya mencampurkannya? Jika saya memiliki kategori [0-1] dan kontinu [0-100], haruskah saya menormalkan kembali?

Saya sedang bekerja dengan Python.

Terima kasih banyak atas bantuan Anda!

LucasRamos
sumber
"Saya juga ingin tahu tentang penanganan fitur-fitur kategorikal dan berkelanjutan" Saya percaya itu akan membuat pertanyaan terpisah. Bahkan, sudah ditanyakan di sini .
E_net4 tidak aman
2
ada perbedaan antara tidak memiliki cukup sampel dan memiliki fitur yang tidak relevan. Saya tidak akan terlalu fokus untuk memilih 7 fitur karena beberapa aturan sederhana ...
oW_
1
Tetap lakukan apa yang akan Anda lakukan: gunakan validasi silang untuk mengoptimalkan regularisasi. Saya sarankan jaring elastis (L1 + L2).
Emre

Jawaban:

6

Untuk mengurangi model Anda menjadi 7 variabel, ada beberapa pendekatan yang dapat Anda ambil:

  1. PCA (tanpa pengawasan): ini menciptakan kombinasi linier "baru" dari data Anda di mana setiap komponen pengolah menjelaskan sebanyak mungkin variasi dalam data. Jadi 7 komponen pertama (dari 27) harus dapat menjelaskan persentase variasi yang baik dalam data Anda. Anda kemudian dapat memasukkan ketujuh komponen ini ke dalam persamaan regresi logistik Anda. Kerugian di sini adalah karena komponen merupakan kombinasi dari variabel asli Anda, Anda kehilangan beberapa interpretabilitas dengan model regresi Anda. Namun harus menghasilkan akurasi yang sangat baik. Teknik yang sama ini diterapkan pada metode pengurangan dimensi lain seperti
  2. Metode umum lainnya dalam regresi adalah maju bertahap di mana Anda mulai dengan satu variabel dan menambahkan pada setiap langkah lainnya, yang disimpan atau dijatuhkan berdasarkan beberapa kriteria (biasanya skor BIC atau AIC). Mundur regresi bertahap adalah hal yang sama tetapi Anda mulai dengan semua variabel dan menghapusnya sekali lagi berdasarkan beberapa kriteria. Berdasarkan penelusuran singkat, tampaknya python tidak memiliki regresi bertahap tetapi mereka melakukan algoritme eliminasi fitur serupa yang dijelaskan dalam pos Ilmu Data ini .
  3. L.1L.1

Seperti yang dikomentari @ E_net4, pertanyaan berkelanjutan Anda ditujukan pada pos lain.

bnorm
sumber
5

Anda menganggap "Aturan 10" terlalu serius. Ini aturan yang sangat kasar. Itu tidak dimaksudkan untuk digunakan seperti Anda menggunakannya.

Sepertinya Anda berpikir: "Saya hanya memiliki 70 contoh positif, jadi pada Peraturan 10, saya hanya diperbolehkan menggunakan 7 fitur; bagaimana cara memilih 7 fitur yang akan digunakan?"

Bukan itu yang dimaksud dengan Aturan 10. Bukan aturan yang menentukan berapa banyak fitur yang diizinkan untuk Anda gunakan. Aturan 10 adalah deskriptif, bukan preskriptif, dan ini merupakan pedoman perkiraan: jika jumlah instance jauh lebih sedikit dari 10 kali jumlah fitur, Anda berisiko sangat tinggi untuk overfitting, dan Anda mungkin mendapatkan hasil yang buruk.

Jadi apa yang harus kamu lakukan? Anda harus tetap melakukan apa yang akan Anda lakukan: gunakan regularisasi, dan gunakan cross-validation untuk memilih hyper-parameter regularisasi. Selain itu, penting untuk memiliki set uji tahan yang tidak Anda sentuh sampai Anda menyelesaikan segala sesuatu tentang pengklasifikasi, untuk menghindari perkiraan akurasi overfitting dan bias.

Dan jika Anda bisa mendapatkan lebih banyak data, itu akan sangat membantu.

Akhirnya, karena Anda memiliki kelas yang tidak seimbang, Anda dapat mempertimbangkan untuk membaca tentang ketidakseimbangan kelas dan metode untuk menghadapinya.

DW
sumber