Apa itu feature extraction dalam machine learning?
Feature extraction adalah proses mengubah data mentah menjadi feature berupa angka, yaitu kolom input yang dipelajari model. Prosesnya mencakup memilih properti yang diukur, menurunkan properti baru dari kolom yang ada, mengubah skalanya, dan memampatkan banyak feature menjadi beberapa saja. Tujuannya adalah tabel tempat pola yang memprediksi target mudah ditemukan model.
Setiap pipeline machine learning melakukan salah satu bentuknya. Model tabular untuk penentuan harga, credit scoring, atau churn mengandalkan feature buatan tangan seperti rasio dan waktu sejak kejadian terakhir. Model teks mulai dari jumlah kata, TF-IDF, atau embedding yang dipelajari, dan model gambar dari statistik pixel atau aktivasi network pretrained. Dalam deep learning, network mempelajari feature-nya sendiri, tetapi pilihan input dan skalanya tetap memengaruhi seberapa baik training-nya.
Ide utama
- Feature adalah satu properti terukur dari sebuah contoh, disimpan sebagai satu kolom di tabel input.
- Feature engineering membuat kolom baru, seperti rasio, bin, dan transformasi log, yang memperlihatkan pola kepada model.
- Scaling menyamakan rentang feature agar model berbasis jarak dan gradient tidak didominasi satuan besar.
- PCA membangun beberapa feature baru yang menyimpan sebagian besar variance dari banyak feature yang saling berkorelasi.
- Feature selection mempertahankan kolom asli yang membawa sinyal dan membuang yang redundan.
- Setiap statistik untuk membangun feature harus dihitung dari data training saja, kalau tidak evaluasinya bocor.
Pertanyaan umum
Apa bedanya feature extraction dan feature selection?
Feature extraction membuat feature baru, baik dengan mengubah data mentah maupun menggabungkan kolom yang ada, seperti yang dilakukan PCA. Feature selection mempertahankan sebagian kolom yang ada tanpa mengubahnya. Selection menjaga feature tetap mudah ditafsirkan, sedangkan extraction bisa memampatkan lebih banyak informasi ke lebih sedikit angka.
Apakah feature extraction masih diperlukan dengan deep learning?
Bagian yang dikerjakan tangan makin sedikit. CNN mempelajari detektor tepi dan tekstur dari pixel mentah, dan model bahasa mempelajari representasi katanya sendiri. Network pretrained kini juga sering dipakai sebagai feature extractor. Pada data tabular, feature buatan tangan dan gradient-boosted tree tetap sulit dikalahkan.
Apa saja contoh umum feature extraction?
Untuk teks, hitungan bag-of-words, weight TF-IDF, dan embedding. Untuk gambar, histogram warna, deskriptor tepi seperti HOG, atau aktivasi dari CNN pretrained. Untuk audio, mel-frequency cepstral coefficients (MFCC), dan untuk time series, lag, rolling average, dan feature kalender seperti hari dalam seminggu.
Berapa banyak feature yang sebaiknya dimiliki model?
Tidak ada angka pasti, tetapi makin banyak feature, makin banyak contoh yang dibutuhkan untuk memperkirakan efeknya dengan andal. Ketika jumlah feature melebihi jumlah contoh, model mudah mengalami overfitting, dan regularization atau selection menjadi perlu. Sebuah feature layak ditambahkan kalau performa validation membaik, bukan kalau performa training yang membaik.
Penjelasan terkait
- Feature Scaling · Kenapa dan bagaimana menormalkan feature agar lebih cepat konvergen
- Feature Selection · Metode filter, wrapper, dan embedded untuk memilih feature
- Dimensionality Reduction · PCA dan t-SNE untuk melihat data berdimensi tinggi
- Data Preprocessing · Membersihkan, melakukan scaling, dan encoding data mentah
- Curse of Dimensionality · Kenapa ruang berdimensi tinggi merusak intuisi dan algoritma
- Transfer Learning · Berdiri di atas pundak raksasa pretrained
Referensi
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning" (ISLR)
- Guyon & Elisseeff (2003), "An Introduction to Variable and Feature Selection", JMLR
- Goodfellow, Bengio & Courville, "Deep Learning", chapter 15: Representation Learning
Terakhir diperbarui