Lensa ML

Feature Extraction

Cara data mentah menjadi bahasa machine learning

Langkah 1 dari 6: Data Awalnya Berantakan

Sebelum ML bisa belajar, ia butuh angka yang terstruktur: baris dan kolom berisi hasil pengukuran

Dataset berisi 8 rumah, satu observasi per baris
Sq FtKamarUsia (thn)Jarak (mi)KolamHarga ($k)14002358.2Tidak$215k2200453.1Ya$485k18003155.5Tidak$340k3100521.8Ya$710k95015012Tidak$145k2600484.2Ya$560k12002289.5Tidak$190k16503206.8Tidak$285k↑ Target (yang kita prediksi)
Sampel
8
Input feature
5
Target
1

Setiap baris di tabel data ini adalah satu contoh (sebuah rumah). Setiap kolom adalah feature, yaitu properti yang bisa diukur. Kolom terakhir adalah target, yaitu harga yang akan diprediksi.

Lihat delapan rumah mengisi tabel baris demi baris. Susunan ini, satu baris per contoh dan satu kolom per properti yang diukur, adalah format input untuk hampir semua algoritma ML klasik. Input biasanya ditulis sebagai matriks X berukuran n × d, dengan vector target y yang terpisah. Di sini n = 8 dan d = 5, dan harga adalah y. Feature extraction mencakup semua hal yang mengubah catatan mentah menjadi kolom X: memilih apa yang diukur, menurunkan kolom baru, mengubah skalanya, serta memampatkan atau membuangnya. Langkah berikutnya mengikuti urutan itu.

Langkah 2 dari 6: Feature Adalah Kosakata

Setiap kolom adalah feature, satu properti terukur yang dipakai model untuk membuat prediksi

μ=1862.51400H12200H21800H33100H4950H52600H61200H71650H8
Min
950
Rata-rata
1862.5
Maks
3100
Rentang
2150.0

Feature adalah satu kolom di tabel. Feature numerik seperti luas bangunan punya besaran dan sebaran. Feature kategoris seperti "kolam" menyandikan kelompok yang diskret. Distribusi tiap feature menentukan cara mengubahnya.

Klik tiap tab kolom, dari Sq Ft sampai Kolam, dan bandingkan readout min, rata-rata, dan maks. Feature numerik masuk ke model sebagai angka, tetapi feature kategoris perlu encoding dulu. Kolom biner seperti Kolam bisa tetap 0 atau 1. Kolom dengan banyak kategori, seperti lingkungan tempat tinggal, biasanya memakai one-hot encoding: satu kolom 0/1 per kategori, supaya model tidak membaca urutan pada kode sembarang seperti 1, 2, 3. Teks dan gambar lebih sulit, karena bentuk mentahnya sama sekali bukan tabel. Di sinilah feature extractor yang dipelajari dibutuhkan.

Langkah 3 dari 6: Racik Sinyal yang Lebih Baik

Ubah kolom mentah menjadi feature yang memperlihatkan pola tersembunyi kepada model

Rumus: price ÷ sqft
215k ÷ 1400=154485k ÷ 2200=220340k ÷ 1800=189710k ÷ 3100=229145k ÷ 950=153560k ÷ 2600=215190k ÷ 1200=158285k ÷ 1650=173Nilai SumberFeature BaruDistribusi

Harga per Sq Ft: Menormalkan harga menurut ukuran: rumah 3000 sqft seharga $600k lebih murah per kaki dibanding rumah 1000 sqft seharga $300k. Kolom baru ini membuat polanya lebih mudah dilihat model daripada nilai mentahnya.

Klik tiap transformasi, dari Harga per Sq Ft sampai Log Jarak, dan bandingkan nilai sumber dengan kolom baru. Transformasi pertama menyimpan jebakan yang umum: harga per kaki persegi dihitung dari target, jadi memakainya sebagai input untuk memprediksi harga berarti membocorkan jawabannya. Untuk analisis atau untuk memprediksi hal lain, transformasi ini tidak masalah. Transformasi log cocok untuk feature yang rentangnya mencakup beberapa orde besaran, seperti pendapatan atau jarak, dan +1 membuat log tetap terdefinisi di nol. Model tree bisa memecah kolom mentah di titik mana saja, jadi binning lebih membantu model linear daripada tree.

Langkah 4 dari 6: Samakan Skala Feature

Normalkan nilai agar tidak ada satu feature yang mendominasi hanya karena besarannya

Sq Ft95031009501200140016501800220026003100Kamar1512233445Usia2502581520283550Jarak1.812.01.83.14.25.56.88.29.512.0
Sq Ft berkisar 950–3100 sedangkan Usia 2–50, jadi jarak didominasi oleh Sq Ft

Feature scaling mencegah feature berskala besar mendominasi. Min-Max memampatkan nilai ke [0, 1]. Z-Score memusatkan tiap feature di nol dengan standard deviation satuan. Gradient descent, KNN, dan SVM semuanya bekerja lebih baik pada feature yang sudah diskalakan.

Klik Mentah, Min-Max, dan Z-Score, lalu lihat tiga garis bilangan berubah skala. Min-max menghitung x' = (x − min) / (max − min), dan z-score menghitung z = (x − μ) / σ. Kedua statistik itu harus berasal dari training set saja, lalu dipakai ulang pada data validation dan test. Kalau tidak, informasi test bocor ke training. Min-max peka terhadap satu nilai ekstrem, karena satu outlier menentukan rentang bagi semua titik lain. Decision tree dan random forest tidak butuh scaling, karena threshold split bekerja sama saja setelah pengubahan skala monoton apa pun.

Langkah 5 dari 6: Mampatkan Tanpa Kehilangan Makna

Proyeksikan data berdimensi tinggi ke dimensi yang lebih sedikit, yang menangkap variance terbesar

Sq Ft (z)Usia (z)H1H2H3H4H5H6H7H8
Asli
2D
Variance tersimpan
95%
Direduksi
1D

PCA mencari sumbu dengan variance maksimum, yaitu arah tempat data paling menyebar, lalu memproyeksikan setiap titik ke sumbu itu. Di sini PC1 menyimpan sekitar 95% variance dari 2 feature terstandardisasi dalam 1 angka.

Lihat delapan rumah diproyeksikan ke garis PC1, lalu disusun pada satu sumbu di bawahnya. Kedua feature distandardisasi dulu, karena PCA mengikuti variance, dan Sq Ft yang belum diskalakan akan menentukan arahnya sendirian. PC1 menyimpan begitu banyak di sini karena Sq Ft dan Usia berkorelasi kuat dalam data ini (r ≈ −0.90): rumah yang lebih besar lebih baru. Untuk dua feature terstandardisasi, porsi variance PC1 adalah (1 + |r|) / 2. PCA membangun feature baru dari kombinasi feature lama, sedangkan selection di langkah berikutnya mempertahankan kolom asli dan membuang sisanya.

Langkah 6 dari 6: Simpan yang Penting Saja

Ukur daya prediksi tiap feature dan buang noise-nya

Sq Ft42%✓Usia24%✓Kolam16%✓Jarak11%✕Kamar7%✕Threshold: 15%
Threshold15%
Dipertahankan
3
Dibuang
2

Skor feature importance memeringkat seberapa besar kontribusi tiap feature pada prediksi. Membuang yang berada di bawah threshold menghasilkan model yang lebih sederhana: lebih cepat dilatih, lebih mudah dibaca, dan sering kali lebih jarang overfitting.

Geser Threshold dari 0% ke 40% dan lihat feature berguguran, lalu beralih ke Matriks Korelasi. Skor importance seperti ini biasanya berasal dari tree ensemble, tempat tiap feature mendapat nilai menurut seberapa besar split-nya menurunkan error. Feature yang berkorelasi berbagi nilai itu, jadi Kamar bisa tampak lemah hanya karena Sq Ft sudah membawa sinyalnya. Permutation importance, yang mengacak satu kolom dan mengukur seberapa jauh skornya turun, adalah pemeriksaan yang lebih andal. Selection harus berada di dalam cross-validation, karena memilih feature pada seluruh dataset membocorkan informasi test ke hasilnya.

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

Referensi

  1. James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning" (ISLR)
  2. Guyon & Elisseeff (2003), "An Introduction to Variable and Feature Selection", JMLR
  3. Goodfellow, Bengio & Courville, "Deep Learning", chapter 15: Representation Learning

Terakhir diperbarui