Saya punya satu pertanyaan berkenaan dengan kebutuhan untuk menggunakan metode pemilihan fitur (Acak fitur nilai pentingnya hutan atau metode pemilihan fitur Univariat dll) sebelum menjalankan algoritma pembelajaran statistik.
Kami tahu untuk menghindari overfitting, kami dapat menerapkan penalti regularisasi pada vektor bobot.
Jadi jika saya ingin melakukan regresi linier, maka saya bisa memperkenalkan L2 atau L1 atau bahkan parameter regularisasi net. Untuk mendapatkan solusi yang jarang, penalti L1 membantu dalam pemilihan fitur.
Lalu apakah masih diperlukan untuk melakukan pemilihan fitur sebelum menjalankan regresi regularisasi L1 seperti Lasso ?. Secara teknis Lasso membantu saya mengurangi fitur dengan penalti L1 lalu mengapa pemilihan fitur diperlukan sebelum menjalankan algo?
Saya membaca sebuah artikel penelitian yang mengatakan bahwa melakukan Anova maka SVM memberikan kinerja yang lebih baik daripada menggunakan SVM saja. Sekarang pertanyaannya adalah: SVM secara inheren melakukan regularisasi menggunakan norma L2. Untuk memaksimalkan margin, meminimalkan norma vektor bobot. Jadi ia melakukan regularisasi dalam fungsi objektifnya. Maka secara teknis algoritma seperti SVM tidak boleh diganggu dengan metode pemilihan fitur ?. Tetapi laporan itu masih mengatakan melakukan pemilihan Fitur Univariat sebelum SVM normal lebih kuat.
Adakah yang punya pikiran?
Jawaban:
Pemilihan fitur kadang-kadang meningkatkan kinerja model yang diregulasi, tetapi dalam pengalaman saya itu umumnya membuat kinerja generalisasi lebih buruk. Alasan untuk ini adalah bahwa semakin banyak pilihan yang kita buat mengenai model kita (termasuk nilai-nilai parameter, pilihan fitur, pengaturan parameter-hyper, pilihan kernel ...), semakin banyak data yang perlu kita buat pilihan ini andal. Secara umum kami membuat pilihan-pilihan ini dengan meminimalkan beberapa kriteria yang dievaluasi pada set data yang terbatas, yang berarti bahwa kriteria tersebut pasti memiliki varian yang tidak nol. Akibatnya, jika kita meminimalkan kriteria terlalu agresif, kita dapat menyesuaikannya, yaitu kita dapat membuat pilihan yang meminimalkan kriteria karena fitur yang bergantung pada sampel tertentu yang dievaluasi, daripada karena akan menghasilkan peningkatan kinerja yang tulus.
Sekarang SVM adalah perkiraan penerapan terikat pada kinerja generalisasi yang tidak tergantung pada dimensi, jadi pada prinsipnya, kita dapat mengharapkan kinerja yang baik tanpa pemilihan fitur, asalkan parameter regularisasi dipilih dengan benar. Sebagian besar metode pemilihan fitur tidak memiliki "jaminan" kinerja seperti itu.
Untuk metode L1, saya pasti tidak akan repot dengan pemilihan fitur, karena kriteria L1 umumnya efektif dalam memangkas fitur. Alasan efektif adalah karena menginduksi pemesanan di mana fitur masuk dan keluar dari model, yang mengurangi jumlah pilihan yang tersedia dalam memilih fitur, dan karenanya kurang rentan terhadap pemasangan berlebihan.
Alasan terbaik untuk pemilihan fitur adalah untuk mengetahui fitur mana yang relevan / penting. Alasan terburuk untuk pemilihan fitur adalah untuk meningkatkan kinerja, untuk model yang diatur, umumnya itu membuat segalanya menjadi lebih buruk. Namun, untuk beberapa set data, ini dapat membuat perbedaan besar, jadi hal terbaik yang harus dilakukan adalah mencobanya dan menggunakan skema evaluasi kinerja yang kuat dan tidak bias (mis. Validasi silang bersarang) untuk mengetahui apakah Anda adalah salah satu dari set data tersebut.
sumber
Namun, masih ada alasan untuk sepenuhnya menghapus variabel.
sumber
Saya tidak berpikir overfitting adalah alasan bahwa kami membutuhkan pemilihan fitur di tempat pertama. Faktanya, overfitting adalah sesuatu yang terjadi jika kita tidak memberikan data yang cukup kepada model kita, dan pemilihan fitur semakin mengurangi jumlah data yang kita lewati algoritma kita.
Saya lebih suka mengatakan bahwa pemilihan fitur diperlukan sebagai langkah preprocessing untuk model yang tidak memiliki kekuatan untuk menentukan pentingnya fitur pada mereka sendiri, atau untuk algoritma yang menjadi jauh lebih efisien jika mereka harus melakukan bobot penting ini sendiri. .
Ambil contoh algoritma tetangga terdekat k-terdekat berdasarkan jarak Euclidean. Itu akan selalu melihat semua fitur memiliki bobot yang sama atau penting untuk klasifikasi akhir. Jadi, jika Anda memberikan 100 fitur tetapi hanya tiga di antaranya yang relevan untuk masalah klasifikasi Anda, maka semua suara dari fitur tambahan ini akan sepenuhnya menghilangkan informasi dari tiga fitur penting, dan Anda tidak akan mendapatkan prediksi yang berguna. Jika Anda menentukan fitur-fitur penting sebelumnya dan hanya mengirimkannya ke pengklasifikasi, itu akan bekerja lebih baik (belum lagi lebih cepat).
Di sisi lain, lihatlah pengelompokan hutan acak. Saat pelatihan, secara otomatis akan menentukan fitur mana yang paling berguna dengan menemukan pemisahan optimal dengan memilih dari subset dari semua fitur. Karena itu, akan jauh lebih baik dalam menyaring 97 fitur yang tidak berguna untuk menemukan tiga yang bagus. Tentu saja, itu masih akan berjalan lebih cepat jika Anda melakukan seleksi sebelumnya, tetapi kekuatan klasifikasinya biasanya tidak akan terlalu menderita dengan memberikannya banyak fitur tambahan, bahkan jika mereka tidak relevan.
Akhirnya, lihatlah jaringan saraf. Sekali lagi, ini adalah model yang memiliki kekuatan untuk mengabaikan fitur yang tidak relevan, dan pelatihan dengan backpropagation biasanya akan menyatu untuk menggunakan fitur yang menarik. Namun, diketahui bahwa algoritma pelatihan standar bertemu lebih cepat jika input "diputihkan", yaitu, diskalakan ke varian unit dan dengan korelasi silang yang dihapus (LeCun et al, 1998) . Oleh karena itu, meskipun Anda tidak benar-benar perlu melakukan pemilihan fitur, itu dapat membayar dalam hal kinerja murni untuk melakukan preprocessing dari data input.
Jadi secara ringkas, saya akan mengatakan pemilihan fitur kurang berhubungan dengan overfitting dan lebih dengan meningkatkan kekuatan klasifikasi dan efisiensi komputasi dari metode pembelajaran. Berapa banyak yang dibutuhkan tergantung banyak pada metode yang dimaksud.
sumber
Saya pikir jika Anda tidak memiliki jumlah titik data yang cukup untuk mengoptimalkan parameter, Anda dapat melakukan pemilihan fitur untuk menghapus beberapa variabel. Tetapi saya tidak akan menyarankan melakukan terlalu banyak karena Anda dapat kehilangan sinyal yang ingin Anda modelkan.
Plus mungkin ada fitur-fitur tertentu yang tidak Anda inginkan dalam model Anda berdasarkan pada pemahaman bisnis yang mungkin ingin Anda hapus.
sumber
Dalam kasus laso, preprocessing data untuk menghapus fitur gangguan sebenarnya cukup umum. Untuk makalah baru-baru ini membahas cara untuk melakukan ini, silakan lihat Tes Skrining Xiang et al untuk Masalah Lasso . Motivasi umum yang disebutkan dalam makalah yang saya lihat adalah mengurangi beban komputasi dalam menghitung solusi.
sumber