Lensa ML

Feature Selection

Langkah 1 dari 6: Kenapa Memilih Feature?

Lebih sedikit sering lebih baik

Feature
5
Akurasi train
83.7%
Akurasi test
79.2%
Selisih
4.5%
50%60%70%80%90%100%15101520# featureTrainTest
# Feature: 5

Setiap feature dari lima yang pertama membawa sinyal nyata, jadi akurasi test naik di setiap penambahan.

Geser slider feature dari 1 ke 20. Dalam skenario ini hanya lima feature pertama (Usia, Pendapatan, Skor, Tinggi, Berat) yang membawa sinyal, dan lima belas sisanya noise. Akurasi test memuncak di 79,2% dengan lima feature dan turun ke sekitar 46% dengan dua puluh feature, sementara akurasi training terus naik sampai 99%. Setiap feature tambahan memberi model lebih banyak kebebasan untuk menyesuaikan diri dengan pola kebetulan. Feature yang lebih sedikit juga membuat model lebih murah dijalankan, lebih mudah dijelaskan, dan lebih tahan terhadap input yang bergeser atau rusak di produksi.

Langkah 2 dari 6: Filter Method

Skor tiap feature secara terpisah

Threshold
0.30
Disimpan
5
Dibuang
15
Est. akurasi
92.0%
Usia0.90Pendapatan0.80Skor0.69Tinggi0.55Berat0.42Rand20.17Noise10.16Rand50.16Rand80.16ID0.16Rand30.15Rand10.14Rand100.14Warna0.13Rand60.12Noise30.11Noise20.09Rand90.09Rand70.08Rand40.05threshold=0.30
Threshold korelasi: 0.30

Filter method menilai tiap feature secara terpisah, di sini berdasarkan korelasi. Metode ini cepat, tetapi tidak melihat interaksi antar-feature.

Geser threshold korelasi dari 0 ke 1. Di mana pun antara 0,18 dan 0,42, lima feature informatif tetap ada dan kelima belas feature noise terbuang. Filter method memakai statistik yang dihitung untuk tiap feature secara terpisah, seperti korelasi Pearson, mutual information, uji chi-squared, atau ANOVA F-score, jadi biayanya murah dan bisa dijalankan sebelum model apa pun di-train. Titik butanya adalah interaksi: pada pola XOR, masing-masing dari dua feature punya korelasi nol dengan target, padahal bersama-sama keduanya memprediksi target dengan sempurna.

Langkah 3 dari 6: Forward Selection

Tambah satu per satu

Ronde
0
Terpilih
0
Akurasi
50.0%
Berikutnya
Usia
FeatureUsia0.89Pendapatan0.74Skor0.61Tinggi0.45Berat0.33Warna0.08ID0.06Noise10.05Noise20.04Noise30.04Akurasi per ronde050.0%12345678910
0/10

Forward selection menambahkan, di setiap ronde, feature yang paling meningkatkan model. Tekan Putar atau geser slider untuk mulai.

Tekan Putar atau geser slider ronde dari 0 ke 10. Forward selection sungguhan melatih ulang model sekali untuk setiap kandidat tersisa di setiap ronde, jadi memilih 10 dari 20 feature butuh 20 + 19 + ... + 11 = 155 kali fit. Backward elimination menjalankan ide yang sama secara terbalik: mulai dari semua feature dan membuang yang terlemah. Recursive feature elimination (RFE) adalah kerabat yang lebih murah, yang membuang feature berdasarkan weight model itu sendiri. Wrapper method bisa overfit pada data validasi yang dipakai untuk menilai kandidat, jadi periksa subset akhirnya pada test set terpisah.

Langkah 4 dari 6: L1 Regularization

Biarkan model yang memutuskan

λ
0.004
Bukan nol
20
Jadi nol
0
Akurasi
80.5%
Usia1.210Pendapatan1.089Skor0.984Tinggi0.855Berat0.758Rand50.154Warna0.143Rand80.142Rand70.129Noise10.128Rand30.125Rand40.085Noise20.079Noise30.075Rand90.067ID0.057Rand20.054Rand10.050Rand60.047Rand100.033
Penalti L1 λ: 0.0040

Penalti rendah: sebagian besar feature tetap punya weight bukan nol, termasuk feature noise.

Geser slider penalti L1 dan lihat koefisien jatuh tepat ke nol. Lasso meminimalkan squared error ditambah λ·Σ|w_i|. Nilai absolut punya sudut di nol, jadi begitu λ melebihi kontribusi sebuah feature pada fit, titik optimum menempatkan weight-nya tepat di nol, bukan sekadar mendekati nol. Regularization Ridge (L2) mengecilkan weight, tetapi hampir tidak pernah membuatnya nol. Dalam demo ini, semua 20 weight bertahan pada λ = 0.004, lima tersisa mulai sekitar λ = 0.03, dan tidak ada yang tersisa pada λ = 1.

Langkah 5 dari 6: Feature Importance

Skor berbasis tree

Feature teratas
Usia
Skor teratas
0.858
Tree
20
Stabilitas
±5.6%
Usia0.858Pendapatan0.736Skor0.591Tinggi0.395Berat0.351ID0.098Warna0.088Noise30.084Noise10.070Rand20.057Rand40.053Rand10.046Rand90.035Rand80.032Rand100.027Rand60.020Noise20.018Rand30.009Rand50.005Rand70.005
# Tree: 20

Model tree mengurutkan feature berdasarkan seberapa besar impurity yang dikuranginya di semua split. Skor importance makin stabil seiring ensemble membesar.

Geser jumlah tree dari 5 ke 100 dan lihat peringkatnya menjadi stabil. Importance berbasis impurity, yang juga disebut mean decrease in impurity, dihitung selama training tanpa biaya tambahan, tetapi cenderung memihak feature dengan banyak nilai unik. Kolom ID unik bisa mendapat skor bagus karena membagi data training dengan sempurna, padahal tidak berarti apa-apa. Permutation importance menghindari masalah ini: acak satu feature di data validasi dan ukur seberapa jauh skornya turun. Nilai SHAP memperluas ide ini untuk menjelaskan prediksi tunggal.

Langkah 6 dari 6: Dampak pada Generalisasi

Feature terpilih vs. semua feature

Feature
5
Akurasi train
98.1%
Akurasi test
92.1%
# optimal
5
50%60%70%80%90%100%optimal15101520# feature teratas yang disimpanTrainTest
# Feature teratas: 5

Jumlah feature optimal menyeimbangkan tambahan informasi dengan curse of dimensionality. Ini puncaknya: akurasi test tertinggi di kurva.

Geser jumlah feature teratas yang disimpan dari 1 ke 20. Akurasi test memuncak di 92,1% dengan lima teratas dan turun ke 51,6% dengan dua puluh feature. Feature selection harus diperlakukan sebagai bagian dari model. Kalau feature dipilih memakai seluruh dataset dan baru setelah itu di-cross-validate, fold test sudah memengaruhi pilihan itu, dan estimasinya bisa terlihat bagus bahkan pada noise murni. Ambroise dan McLachlan menunjukkan selection bias ini pada 2002 dengan data ekspresi gen.

Apa itu feature selection dalam machine learning?

Feature selection adalah proses memilih sebagian variabel input dalam dataset dan membuang sisanya, sebelum atau selama training model. Berbeda dengan metode dimensionality reduction seperti PCA, feature selection mempertahankan kolom aslinya, sehingga model tetap bekerja dengan input yang punya nama dan bisa ditafsirkan. Tiga keluarga utamanya adalah filter method, wrapper method, dan embedded method.

Teknik ini dipakai di mana pun ada banyak kandidat input dan datanya terbatas: studi genomik dengan ribuan gen per pasien, model kredit yang dibangun dari ratusan variabel rekening, serta data sensor atau log dengan banyak sinyal yang redundan. Membuang kolom yang tidak relevan mengurangi overfitting, mempercepat training dan inference, memangkas biaya pengumpulan data di produksi, dan membuat model lebih mudah dijelaskan kepada pengguna dan regulator.

Ide utama

  • Feature selection menyimpan sebagian input asli dan membuang sisanya.
  • Feature yang tidak relevan menaikkan akurasi training, tetapi menurunkan akurasi test.
  • Filter method menilai feature satu per satu dan melewatkan interaksi.
  • Wrapper method seperti forward selection mencari subset dengan melatih ulang model.
  • Embedded method seperti lasso dan tree importance memilih feature selama training.
  • Seleksi harus berjalan di dalam cross-validation; kalau tidak, estimasi kinerjanya bias ke atas.

Pertanyaan umum

Apa bedanya feature selection dan dimensionality reduction?

Feature selection menyimpan sebagian kolom asli tanpa mengubahnya. Dimensionality reduction, seperti PCA atau autoencoder, membangun feature baru dari kombinasi semua feature asli. Seleksi menjaga model tetap bisa ditafsirkan dan bisa menghapus kolom dari pengumpulan data sama sekali, sedangkan reduksi bisa menangkap sinyal yang tersebar di banyak feature lemah.

Berapa feature yang sebaiknya disimpan?

Perlakukan jumlahnya sebagai hyperparameter dan pilih dengan cross-validation, dengan menilai tiap kandidat jumlah pada held-out fold. Aturan praktis yang umum adalah memilih himpunan terkecil yang skornya berada dalam satu standard error dari yang terbaik. Batasan domain, seperti biaya mengumpulkan tiap feature, bisa membenarkan himpunan yang lebih kecil.

Bagaimana menangani feature yang saling berkorelasi?

Dua feature dengan korelasi tinggi membawa informasi yang kurang lebih sama, jadi metode seleksi bisa menyimpan salah satunya, dan pilihannya bisa berbalik antar-run. Lasso cenderung memilih satu secara sembarang, sedangkan elastic net, yang mencampur penalti L1 dan L2, menjaga kelompok yang berkorelasi tetap bersama. Tree importance membagi kredit di antara keduanya, jadi masing-masing bisa terlihat kurang penting dari yang sebenarnya.

Apakah feature selection dibutuhkan untuk deep learning?

Lebih jarang pada data mentah seperti gambar, audio, dan teks, karena network mempelajari representasinya sendiri dan dilatih dengan dataset besar. Feature selection masih membantu pada data tabular dengan banyak kolom ber-noise, ketika membuang input sampah bisa menaikkan akurasi dan memangkas biaya serving. Regularization dan dropout mengerjakan sebagian tugas yang sama di dalam network.

Penjelasan terkait

Referensi

  1. Guyon & Elisseeff (2003), "An Introduction to Variable and Feature Selection", JMLR
  2. Tibshirani (1996), "Regression Shrinkage and Selection via the Lasso", JRSS-B
  3. Breiman (2001), "Random Forests", Machine Learning
  4. Ambroise & McLachlan (2002), "Selection bias in gene extraction on the basis of microarray gene-expression data", PNAS

Terakhir diperbarui