Prosedur pemilihan variabel untuk klasifikasi biner

29

Apa pilihan variabel / fitur yang Anda sukai untuk klasifikasi biner ketika ada lebih banyak variabel / fitur daripada pengamatan dalam set pembelajaran? Tujuannya di sini adalah untuk membahas prosedur pemilihan fitur apa yang mengurangi kesalahan klasifikasi terbaik.

Kita dapat memperbaiki notasi untuk konsistensi: untuk , mari menjadi kumpulan pembelajaran pengamatan dari grup . Jadi adalah ukuran set pembelajaran. Kami menetapkan menjadi jumlah fitur (yaitu dimensi ruang fitur). Misalkan menunjukkan koordinat ke- dari .{ x i 1 , , x i n i } i n 0 + n 1 = n p x [ i ] i x R pi{0,1}{x1i,,xnii}in0+n1=npx[i]ixRp

Tolong berikan referensi lengkap jika Anda tidak bisa memberikan detailnya.

EDIT (diperbarui terus menerus): Prosedur diusulkan dalam jawaban di bawah ini

Karena ini adalah komunitas wiki, akan ada lebih banyak diskusi dan pembaruan

Saya punya satu komentar: dalam arti tertentu, Anda semua memberikan prosedur yang mengizinkan pemesanan variabel tetapi tidak pemilihan variabel (Anda cukup mengelak tentang cara memilih jumlah fitur, saya kira Anda semua menggunakan validasi silang?) Dapatkah Anda meningkatkan jawaban ke arah ini? (karena ini adalah komunitas wiki Anda tidak perlu menjadi penulis jawaban untuk menambahkan informasi tentang cara memilih jumlah variabel? Saya telah membuka pertanyaan ke arah ini di sini Validasi silang dalam dimensi yang sangat tinggi (untuk memilih jumlah variabel yang digunakan dalam klasifikasi dimensi yang sangat tinggi) )

robin girard
sumber
Apakah ini pertanyaan atau kumpulan? Jika yang terakhir, itu harus komunitas wiki. Jika yang pertama, berikan detail lebih lanjut tentang apa yang ingin Anda capai? Misalnya, apakah itu semua yang relevan atau lebih tepatnya seleksi minimal-optimal? Berapa banyak? Seberapa sulit masalah klasifikasi?
kolam ... banyak berarti 1000 fitur atau lebih dan kurang dari 100 pengamatan.
robin girard

Jawaban:

18

Sebuah pendekatan yang sangat populer adalah regresi logistik yang dihukum, di mana seseorang memaksimalkan jumlah kemungkinan log dan istilah hukuman yang terdiri dari norma-L1 ("laso"), norma-L2 ("punggung"), kombinasi keduanya. ("elastis"), atau penalti yang terkait dengan grup variabel ("grup laso"). Pendekatan ini mempunyai beberapa keuntungan:

  1. Ini memiliki sifat teoritis yang kuat, misalnya, lihat makalah ini oleh Candes & Plan dan koneksi dekat ke penginderaan terkompresi;
  2. Ini memiliki eksposisi diakses, misalnya, dalam Elemen Pembelajaran Statistik oleh Friedman-Hastie-Tibshirani (tersedia online);
  3. Ini telah tersedia perangkat lunak yang sesuai dengan model. R memiliki paket glmnet yang sangat cepat dan bekerja dengan baik dengan kumpulan data yang cukup besar. Python memiliki scikit-belajar , yang meliputi regresi logistik L1- dan L2-dihukum;
  4. Ini bekerja sangat baik dalam praktiknya, seperti yang ditunjukkan dalam banyak makalah aplikasi dalam pengenalan gambar, pemrosesan sinyal, biometrik, dan keuangan.
gappy
sumber
10

Saya memiliki sedikit preferensi untuk Hutan Acak oleh Leo Breiman & Adele Cutleer karena beberapa alasan:

  • memungkinkan untuk mengatasi prediktor kategorikal dan kontinu, serta ukuran sampel kelas yang tidak seimbang;
  • sebagai metode ensemble / embedded, validasi silang tertanam dan memungkinkan untuk memperkirakan kesalahan generalisasi;
  • itu relatif tidak masuk akal untuk parameter penyetelannya (% dari variabel yang dipilih untuk menumbuhkan pohon, # pohon yang dibangun);
  • ini memberikan ukuran asli dari pentingnya variabel dan mampu mengungkap interaksi yang kompleks antara variabel (meskipun ini dapat menyebabkan hasil yang sulit dibaca).

Beberapa penulis berpendapat bahwa itu dilakukan serta dihukum SVM atau Gradient Boosting Machines (lihat, misalnya Cutler et al., 2009, untuk poin terakhir).

Cakupan lengkap aplikasi atau keuntungannya mungkin di luar topik, jadi saya sarankan Elemen Pembelajaran Statistik dari Hastie et al. (bab 15) dan Sayes et al. (2007) untuk bacaan lebih lanjut.

Last but not least, ia memiliki implementasi yang bagus di R, dengan paket randomForest . Paket R lainnya juga memperluas atau menggunakannya, mis. Pesta dan tanda sisipan .

Referensi:

Cutler, A., Cutler, DR, dan Stevens, JR (2009). Metode Berbasis Pohon, dalam Analisis Data Dimensi Tinggi dalam Penelitian Kanker , Li, X. dan Xu, R. (eds.), Hlm. 83-101, Springer.

Saeys, Y., Inza, I., dan Larrañaga, P. (2007). Tinjauan teknik pemilihan fitur dalam bioinformatika. Bioinformatika , 23 (19) : 2507-2517.

chl
sumber
7

Pemindaian Metropolis / MCMC

  • Pilih beberapa fitur secara acak sebagai permulaan, latih classifier hanya pada mereka dan dapatkan kesalahannya.
  • Buat beberapa perubahan acak ke perangkat kerja ini - hapus satu fitur, tambahkan yang lain secara acak atau ganti beberapa fitur dengan yang saat ini tidak digunakan.
  • Latih classifier baru dan dapatkan kesalahannya; simpan di dEperbedaan kesalahan pada set baru dikurangi kesalahan pada set sebelumnya.
  • Dengan probabilitas min(1;exp(-beta*dE))menerima perubahan ini, jika tidak tolak dan coba perubahan acak lainnya.
  • Ulangi untuk waktu yang lama dan akhirnya kembalikan set kerja yang secara global mencapai kesalahan terkecil.

Anda dapat memperluasnya dengan kontrol betaparameter yang lebih bijaksana . Cara yang lebih sederhana adalah dengan menggunakan simulasi anil ketika Anda meningkatkan beta(menurunkan suhu dalam analogi fisik) dari waktu ke waktu untuk mengurangi fluktuasi dan mendorong algoritma ke minimum. Lebih sulit adalah menggunakan pertukaran replika .

pengguna88
sumber
5

Jika Anda hanya tertarik pada kinerja generalisasi, Anda mungkin lebih baik tidak melakukan pemilihan fitur dan menggunakan regularisasi sebagai gantinya (misalnya regresi ridge). Ada beberapa tantangan terbuka di komunitas pembelajaran mesin tentang pemilihan fitur, dan metode yang mengandalkan regularisasi daripada pemilihan fitur yang umumnya berkinerja paling baik juga, jika tidak lebih baik.

Dikran Marsupial
sumber
3

Pilihan maju serakah.

Langkah-langkah untuk metode ini adalah:

  • Pastikan Anda memiliki set kereta dan validasi
  • Ulangi yang berikut ini
    • Latih classifier dengan masing-masing fitur secara terpisah yang belum dipilih dan dengan semua fitur yang dipilih sebelumnya
    • Jika hasilnya membaik, tambahkan fitur berkinerja terbaik, atau hentikan prosedur
Peter Smit
sumber
Bagaimana Anda "melatih" classifier Anda? Agaknya ini dilakukan pada set pelatihan. Jika itu adalah Mesin vektor Dukungan (SVM) ada beberapa parameter untuk dicoba selama pelatihan. Apakah masing-masing diuji dengan set validasi (tes)? Atau apakah Anda menggunakan validasi k-fold cross? Berapa kali Anda menggunakan validasi (tes) yang ditetapkan untuk memeriksa kinerja Anda - mungkin ini adalah akurasi. Maaf karena terlalu berlebihan, tetapi ini adalah jawaban yang tidak didefinisikan dengan baik dan berisiko terlalu pas.
Thylacoleo
@Thylacoleo Ini adalah metode dasar dan serakah yang sangat kasar. Seringkali Anda mempertahankan validasi Anda dengan menjalankan yang sama, tetapi apa pun yang Anda suka tidak masalah.
Peter Smit
2

Eliminasi mundur.

Mulailah dengan set lengkap, kemudian latih classifier pada fitur yang tersisa dan hapus fitur dengan kepentingan terkecil, berhenti ketika kesalahan classifier dengan cepat meningkat / menjadi tinggi yang tidak dapat diterima.

Pentingnya bahkan dapat diperoleh dengan menghapus secara iteratif setiap fitur dan memeriksa peningkatan kesalahan atau diadaptasi dari pengklasifikasi jika memproduksinya (seperti dalam kasus Hutan Acak).

pengguna88
sumber
2
Tetapi pertanyaannya mengatakan ada lebih banyak variabel daripada pengamatan. Jadi tidak mungkin untuk memulai dengan set lengkap.
Rob Hyndman
Apa masalahnya?
2
Anda tidak dapat memasukkan model yang memiliki lebih banyak variabel daripada pengamatan. Tidak ada derajat kebebasan yang cukup untuk estimasi parameter.
Rob Hyndman
1
Dalam perhitungan F Fisher, Anda menghitung F seperti (n - k - p) / (k - 1) * ...dengan njumlah pengamatan, kjumlah kelas (2 di sini) dan pjumlah variabel. n - 2 - p < 0kapan n < p + 2(yang terjadi di sini) yang mengarah ke F < 0. Bukankah itu akan menjadi masalah?
Matthieu
3
Regresi Bayesian sepenuhnya atau teratur akan memungkinkan solusi unik didapat dengan set lengkap prediktor untuk memulai - tidak diragukan lagi hal yang sama berlaku untuk beberapa teknik ML lainnya.
Scortchi