Ketika sebuah proyek machine learning belum memenuhi harapan, pencarian penyebabnya sering berhenti pada pilihan algoritme: mungkin perlu model yang lebih baru, lebih dalam, atau lebih rumit. Pengalaman lapangan justru lebih sering menunjuk ke arah lain: input yang kita berikan kepada model — fitur — umumnya berperan lebih besar daripada selisih performa antar algoritme modern. Feature engineering adalah kegiatan merancang input tersebut: mengubah data mentah menjadi kolom yang benar-benar memuat pola yang ingin dipelajari. Chapter ini membahas mengapa pekerjaan tersebut layak mendapat porsi waktu terbesar dalam proyek, bagaimana siklus kerjanya berjalan, dan ciri-ciri fitur yang baik — sebelum chapter-chapter berikutnya masuk ke teknik konstruksi dan seleksi yang konkret.
Fitur Menentukan Plafon Kinerja #
Pengalaman yang berulang di proyek machine learning terapan dapat diringkas tanpa berlebihan: pekerjaan yang paling menentukan hasil biasanya bukan memilih algoritme, melainkan menyiapkan fitur. Praktisi berpengalaman sering menyampaikan intinya begini — machine learning terapan, dalam praktiknya, sebagian besar adalah feature engineering. Ringkasan tersebut bukan undangan untuk menyepelekan algoritme, karena keduanya bekerja pada lapisan yang berbeda. Algoritme menentukan seberapa dekat sebuah model bisa meraih batas atas yang diizinkan data; fitur menentukan letak batas atas itu sendiri.
Prinsip lama garbage in, garbage out menyatakan hal yang sama dengan bahasa yang lebih sopan: kualitas fitur membatasi plafon kinerja. Model yang dilatih pada fitur miskin informasi tidak punya bahan untuk belajar, sekuat apa pun algoritmenya; mengganti model yang lemah dengan model yang lebih rumit pada fitur yang sama hanya membuat model tersebut lebih cepat menghafal derau. Sebaliknya, satu fitur baru yang tepat — misalnya rasio pengeluaran terhadap pendapatan, alih-alih dua kolom mentahnya — kerap menaikkan performa lebih besar daripada berpindah keluarga model. Evaluasi yang jujur di Section Evaluasi dan Validasi Model selalu menuntut perbandingan model pada representasi data yang sama supaya efek perubahan fitur bisa dibaca terpisah dari efek pergantian model.
Alokasi Tenaga: Model atau Data #
Pemula cenderung membayangkan pekerjaan machine learning sebagai pemilihan dan penyetelan model. Kenyataan di proyek nyata terbalik: porsi waktu terbesar habis di sisi data. Siklus hidup proyek yang dibahas pada Chapter Siklus Hidup Proyek Machine Learning menempatkan pemodelan sebagai satu tahap di antara banyak tahap persiapan. Pembagian waktu yang lazim ditemui praktisi kira-kira berbentuk begini:
- Memahami dan membersihkan data: memeriksa makna tiap kolom, menangani nilai kosong dan pencilan — materi Section Persiapan Data.
- Merekayasa fitur: membangun kolom turunan dari pengetahuan domain — fokus section ini.
- Memeriksa galat model: membaca contoh prediksi yang keliru sebagai bahan ide fitur baru.
- Memilih dan menyetel model: porsi yang mengejutkan kecilnya bila dua poin sebelumnya dikerjakan tuntas.
Menerjemahkan Pengetahuan Domain ke Input Model #
Model membaca data sebagai matriks angka; manusia membaca teks, tanggal, kategori, dan satuan. Feature engineering adalah jembatan penerjemah di antara keduanya: pengetahuan domain — hal yang diketahui orang bisnis tentang masalahnya — diterjemahkan menjadi kolom angka yang polanya bisa dipelajari algoritme. Tanpa penerjemahan ini, pengetahuan domain tidak pernah sampai ke model.
Contoh klasiknya penyaringan email spam. Teks mentah sebuah email tidak bisa langsung diproses model tabular; namun dua fitur sederhana — rasio huruf kapital dan jumlah tautan — sudah memadai untuk contoh berikut:
| Potongan isi email | Rasio huruf kapital | Jumlah tautan |
|---|---|---|
GRATIS!!! KLIK SEKARANG dan klaim hadiahnya | 0,45 | 7 |
Halo Budi, lampiran laporan penjualan bulan ini | 0,05 | 0 |
Dua kolom angka tersebut membuat pola terlihat: email promo bermasalah cenderung padat huruf kapital dan tautan. Model sesederhana regresi logistik sudah bisa memisahkan kedua wilayah itu; tanpa transformasi, teks mentah tidak dapat diolah sama sekali. Perhatikan juga bahwa fitur seperti rasio huruf kapital lahir dari pengetahuan domain — orang yang pernah membaca email promo tahu ciri visualnya, lalu menerjemahkan ciri itu menjadi angka yang bisa dihitung dari data mentah.
Siklus Iteratif Rekayasa Fitur #
Rekayasa fitur jarang selesai sekali jalan. Alurnya berbentuk lingkaran: latih model versi sederhana, periksa di mana model keliru, rumuskan hipotesis fitur yang mungkin memperbaiki galat tersebut, tambahkan fiturnya, lalu latih ulang.
Setiap putaran memberi dua hasil sekaligus: model yang (semoga) membaik, dan pemahaman data yang bertambah. Contoh pada kasus prediksi keberhasilan kampanye pemasaran: inspeksi galat menunjukkan model sering keliru pada kampanye yang dikirim Sabtu atau Minggu — hipotesisnya, hari pengiriman memuat pola perilaku penerima. Fitur is_weekend ditambahkan, model dilatih ulang, lalu galat diperiksa kembali untuk ide berikutnya. Proses iteratif seperti ini juga tempat terbaik menemukan fitur bocor (leakage) sebelum model dibawa ke produksi.
Ciri Fitur yang Baik #
Empat ciri berikut layak dijadikan daftar uji untuk setiap fitur yang akan masuk model:
- Informatif: fitur memuat sinyal yang berhubungan dengan target. Rasio huruf kapital informatif untuk spam; kode warna tombol pada halaman web hampir pasti tidak.
- Tersedia pada waktu prediksi: nilainya harus sudah bisa dihitung saat model dipakai untuk menebak, bukan setelah kejadian selesai.
- Murah: biaya menghitung atau mengumpulkan fitur sepadan dengan sumbangannya. Fitur yang menuntut survei tambahan per prediksi jarang lolos uji biaya.
- Stabil: makna fitur tidak bergeser dari waktu ke waktu. Fitur
jumlah_klik_minggu_inibisa berubah maknanya ketika definisi “minggu” pada sistem berganti.
Peta Keluarga Transformasi #
Empat kelompok transformasi akan menemani kita di section ini dan section sebelumnya. Konstruksi membangun kolom baru; encoding mengubah kategori menjadi angka (Chapter Encoding Variabel Kategorikal); scaling menyamakan satuan antar kolom (Chapter Skala Fitur dengan Scaling dan Normalisasi); seleksi memangkas kolom yang tidak membantu. Tabel berikut merangkum pendekatan-pendekatan itu beserta risiko utamanya:
| Pendekatan | Contoh konkret | Risiko utama |
|---|---|---|
| Kolom mentah apa adanya | usia dalam tahun | Pola non-linier tersembunyi; satuan timpang antar kolom |
| Konstruksi manual | harga_per_m2, rasio huruf kapital | Menuntut pengetahuan domain; hipotesis bisa keliru |
| Transformasi otomatis | PolynomialFeatures, one-hot encoding | Jumlah kolom melonjak cepat; pintu masuk overfitting |
| Seleksi fitur | SelectKBest, RFE, penalti L1 | Fitur informatif ikut terbuang bila kriteria keliru |
Tiga chapter berikutnya mengeksekusi peta itu secara berurutan: mulai dari tangan terbaik untuk membangun fitur baru pada data tabular, lalu tiga keluarga metode seleksi — filter, wrapper, dan embedded. Kita mulai dari yang paling langsung terasa hasilnya: Chapter Membuat Fitur Baru.
Referensi Resmi #
- scikit-learn — User Guide: Feature selection — peta resmi seluruh metode seleksi fitur yang dibahas pada section ini.
- scikit-learn — User Guide: Preprocessing data — keluarga transformasi data (scaling, encoding, polinomial) yang melengkapi rekayasa fitur.