Bisakah saya melakukan pencarian lengkap dengan validasi silang untuk pemilihan fitur?


8

Saya telah membaca beberapa posting tentang pemilihan fitur dan validasi silang tetapi saya masih memiliki pertanyaan tentang prosedur yang benar.

Misalkan saya memiliki dataset dengan 10 fitur dan saya ingin memilih fitur terbaik. Anggap saya menggunakan pengelompokan tetangga terdekat. Dapatkah saya melakukan pencarian lengkap menggunakan validasi silang untuk memperkirakan tingkat kesalahan sebagai panduan untuk memilih fitur terbaik? Sesuatu seperti kode pseudo berikut

for i=1:( 2^10 -1)
   error(i)= crossval(1-nn, selected_fetures(i))
end   

i=find(erro(i)==min(error(i));
selected_fetures= selected_features(i);

Apa yang saya coba jelaskan dalam kode semu ini adalah bahwa saya menjalankan validasi silang untuk semua kemungkinan kombinasi fitur dan memilih kombinasi yang memberikan kesalahan minimum.

Saya pikir prosedur ini benar karena saya melakukan pencarian lengkap. Pilihan fitur tidak didasarkan pada seluruh dataset, tetapi pada kesalahan rata-rata pada setiap partisi. Apakah saya overfitting model dengan pemilihan fitur seperti itu?

Jawaban:


10

Ya, Anda mungkin berakhir dengan terlalu pas dalam hal ini, lihat jawaban saya untuk pertanyaan sebelumnya . Yang penting untuk diingat adalah bahwa validasi silang adalah perkiraan kinerja generalisasi berdasarkan sampel data yang terbatas. Karena didasarkan pada sampel data yang terbatas, estimator memiliki varian yang tidak nol, sehingga sedikit banyak mengurangi kesalahan validasi silang akan menghasilkan kombinasi pilihan model yang benar-benar meningkatkan kesalahan generalisasi dan pilihan model yang hanya mengeksploitasi kekhasan acak dari sampel data tertentu yang dievaluasi. Jenis pilihan model yang terakhir cenderung membuat kinerja generalisasi lebih buruk daripada lebih baik.

Over-fitting adalah masalah potensial setiap kali Anda meminimalkan statistik berdasarkan sampel data yang terbatas, validasi silang tidak berbeda.


1
Mungkin tetapi validasi silang adalah langkah besar di atas resubstitutin karena mengevaluasi classifier pada set data yang tidak digunakan dalam model yang dipasang.
Michael R. Chernick

2
ya, itu kurang rentan terhadap over-fitting daripada estimator resubstitusi, tetapi dalam pengalaman saya itu umumnya masih merupakan masalah yang cukup besar bahwa pencarian lengkap cenderung menjadi ide yang buruk. Millar dalam monografnya tentang "seleksi subset dalam regresi" menyarankan untuk menggunakan regularisasi daripada pemilihan fitur jika kinerja prediktif adalah kriteria penting dan mengidentifikasi fitur bukan tujuan utama (agak memparafrasakan).
Dikran Marsupial

1
@Michael Bukan CV yang salah, ini adalah ide untuk meminimalkan kesalahan pada ruang fitur-fitur yang digunakan (atau pada ruang parameter, yang merupakan jebakan terkait). Bahkan seluruh rangkaian kereta api adalah subset realitas yang acak, sehingga optimisasi ini hanya bersifat stokastik dan harus diperlakukan sesuai, atau Anda pasti akan berakhir dengan fluktuasi yang tidak signifikan - ini terlihat jelas ketika Anda melakukan bootstrap seluruh analisis. IMO dengan cara ini satu-satunya pilihan untuk akurasi yang lebih baik adalah teknik pemodelan yang kuat (teratur atau acak) dan untuk penjelasan beberapa pengujian adalah atribut-lebih baik daripada noise.

1
Saya tidak menyalahkan CV. Masalahnya adalah pencarian lengkap, saya pikir ..
Michael R. Chernick

ya, itu layak menunjukkan bahwa CV jauh lebih baik daripada penggantian untuk pemilihan fitur, karena itu masih kadang-kadang digunakan, tetapi itu adalah optimasi yang lebih dari masalah.
Dikran Marsupial

0

Saya pikir ini adalah prosedur yang valid untuk pemilihan fitur yang tidak lebih rentan terhadap overfitting daripada prosedur pemilihan fitur lainnya. Masalah dengan prosedur ini adalah bahwa ia memiliki kompleksitas komputasi yang besar dan hampir tidak dapat digunakan untuk set data nyata.


2
Saya pikir ini tidak benar. Jika sparsity dicapai melalui regularisasi misalnya pendekatan LASSO, maka himpunan himpunan bagian fitur yang dapat dihasilkan cenderung jauh lebih kecil dari jumlah yang diselidiki oleh pencarian lengkap. Ini berarti ada lebih sedikit peluang untuk over-fitting karena "ruang model" lebih dibatasi. Saya tidak akan merekomendasikan pencarian lengkap kecuali kumpulan data sangat besar dan jumlah fitur sangat kecil (tentu saja dengan cepat menjadi tidak layak secara komputasi dengan jumlah fitur tetap).
Dikran Marsupial

Saya setuju tentang masalah yang dikemukakan Dikran pada pencarian lengkap.
Michael R. Chernick

0

Saya pikir jika Anda melakukan pemilihan fitur di dalam setiap lipatan validasi silang Anda akan baik-baik saja. Sebagai poster di atas, Anda akan mengenakan model apa pun menggunakan fitur yang dipilih yang diperoleh dari prosedur yang diuraikan di atas. Ini karena semua data memiliki pengaruh pada pemilihan rutin fitur.


1
Sayangnya ini juga salah, masalah over-fitting cenderung muncul setiap kali Anda meminimalkan statistik pada sampel data yang terbatas. Jika statistik memiliki varian non-nol, beberapa tingkat pemasangan berlebihan tidak dapat dihindari jika statistik diminimalkan sepenuhnya. Jika Anda melakukan pemilihan fitur secara independen di setiap flip, estimasi cross-validation yang dihasilkan (hampir) tidak bias, tetapi itu tidak berarti model tidak akan terlalu fit, hanya saja estimasi kinerja bertanggung jawab atas efek dari over. -tepat.
Dikran Marsupial
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.