Feature Engineering: Teknik Rahasia Mengubah Data Biasa Menjadi Informasi Bernilai
Dalam machine learning, kualitas model tidak hanya ditentukan oleh algoritma yang digunakan. Model yang sangat kompleks sekalipun dapat menghasilkan prediksi yang kurang baik apabila data yang diberikan tidak relevan, tidak terstruktur, atau belum merepresentasikan pola yang dibutuhkan.
Feature engineering merupakan proses mengolah data mentah menjadi fitur atau variabel yang lebih informatif sehingga dapat digunakan oleh model machine learning untuk mempelajari pola dan menghasilkan prediksi yang lebih baik. Proses ini dapat mencakup pembuatan fitur baru, transformasi data, encoding data kategorikal, scaling, binning, hingga pemilihan fitur yang relevan.
Dengan feature engineering yang tepat, data yang awalnya sulit dimanfaatkan dapat diubah menjadi representasi yang lebih sesuai dengan kebutuhan model. Lalu, apa sebenarnya feature engineering, mengapa proses ini penting, dan bagaimana cara menerapkannya?
Apa Itu Feature Engineering?
Feature engineering adalah proses memilih, membuat, mengubah, atau mengekstraksi fitur dari data mentah agar menjadi representasi yang lebih relevan bagi model machine learning. Dalam machine learning, feature atau fitur merupakan variabel yang digunakan model sebagai input untuk mempelajari pola dan menghasilkan prediksi.
Sebagai contoh, sebuah perusahaan ingin membuat model untuk memprediksi kemungkinan pelanggan melakukan churn. Data yang tersedia dapat berupa usia, kota, jenis paket, jumlah transaksi, tanggal pendaftaran, tanggal transaksi terakhir, jumlah komplain, dan durasi penggunaan layanan. Data tersebut kemudian dapat diolah menjadi fitur yang lebih informatif, seperti lama menjadi pelanggan, jumlah transaksi dalam 30 hari terakhir, jumlah komplain dalam 90 hari terakhir, jumlah hari sejak transaksi terakhir, hingga rata-rata nilai transaksi.
Dengan demikian, feature engineering bukan sekadar mengubah data menjadi angka, tetapi juga menentukan bagaimana informasi dalam data dapat direpresentasikan agar lebih berguna bagi model. Proses ini membutuhkan pemahaman terhadap karakteristik data, hubungan antarvariabel, tujuan model, serta konteks bisnis yang ingin diselesaikan.
Secara sederhana, alurnya dapat digambarkan sebagai data mentah → feature engineering → fitur yang lebih informatif → model machine learning → prediksi.
Fitur yang dirancang dengan tepat dapat membantu model mengenali pola yang relevan dan menghasilkan prediksi yang lebih baik.
Mengapa Feature Engineering Penting?
Feature engineering penting karena model machine learning belajar berdasarkan informasi yang diberikan dalam bentuk fitur. Jika fitur yang tersedia tidak merepresentasikan pola penting dalam data, model akan kesulitan menghasilkan prediksi yang baik. Sebaliknya, fitur yang dirancang dengan tepat dapat membuat pola tertentu menjadi lebih mudah dipelajari oleh model. Beberapa alasan feature engineering penting antara lain:
1. Membuat Data Lebih Mudah Dipahami Model
Data dunia nyata sering kali memiliki format yang tidak langsung sesuai dengan kebutuhan algoritma machine learning. Misalnya, sebuah kolom berisi:
- Jakarta
- Bandung
- Surabaya
- Semarang
Informasi tersebut merupakan data kategorikal. Untuk banyak algoritma, kategori seperti ini perlu direpresentasikan dalam bentuk numerik yang sesuai. Salah satu teknik yang umum digunakan adalah one-hot encoding, yaitu mengubah kategori menjadi sejumlah fitur biner. Scikit-learn menyediakan OneHotEncoder untuk tujuan tersebut.
2. Menghasilkan Informasi yang Lebih Relevan
Data mentah terkadang belum menunjukkan informasi yang sebenarnya penting bagi prediksi. Misalnya, model prediksi keterlambatan pembayaran memiliki data:
- Tanggal tagihan.
- Tanggal pembayaran.
Kedua tanggal tersebut dapat diubah menjadi fitur baru: Jumlah hari keterlambatan = tanggal pembayaran − tanggal jatuh tempo
Fitur baru tersebut dapat memberikan informasi yang jauh lebih relevan dibandingkan dua tanggal mentah secara terpisah.
3. Meningkatkan Kinerja Model
Feature engineering yang baik dapat membantu model menemukan pola yang sebelumnya sulit terlihat. Namun, feature engineering tidak secara otomatis menjamin peningkatan performa. Fitur yang tidak relevan, terlalu banyak, atau dibuat dengan cara yang salah justru dapat meningkatkan noise, menyebabkan overfitting, atau menghasilkan kebocoran data. Karena itu, setiap fitur sebaiknya diuji berdasarkan validasi yang tepat.
4. Mengurangi Kompleksitas Data
Dataset dapat memiliki ratusan atau bahkan ribuan kolom. Tidak semua fitur memiliki nilai prediktif. Melalui proses feature selection dan transformasi, fitur yang tidak relevan dapat dikurangi sehingga model bekerja dengan representasi data yang lebih efisien.
5. Menghubungkan Data dengan Konteks Bisnis
Feature engineering sering kali membutuhkan pemahaman domain. Contohnya, dalam bisnis e-commerce, informasi seperti recency, frequency, dan monetary value dapat memberikan gambaran perilaku pelanggan yang lebih berguna daripada sekadar menggunakan data transaksi mentah. Artinya, feature engineering bukan hanya pekerjaan teknis. Pengetahuan tentang domain bisnis juga dapat berperan besar dalam menentukan fitur yang masuk akal.

Perbedaan Feature Engineering dan Data Preprocessing
Feature engineering dan data preprocessing sering dianggap sama karena keduanya sama-sama melibatkan pengolahan data. Padahal, keduanya memiliki fokus yang berbeda meskipun saling berkaitan.
| Aspek | Feature Engineering | Data Preprocessing |
|---|---|---|
| Fokus | Membuat atau mengubah fitur agar lebih informatif | Menyiapkan data agar dapat diproses dengan baik |
| Tujuan | Meningkatkan representasi informasi untuk model | Membersihkan dan menyiapkan data |
| Contoh | Membuat fitur umur dari tanggal lahir | Menangani missing value |
| Contoh lain | Membuat rasio harga terhadap luas bangunan | Standardisasi skala |
| Hubungan | Bagian dari proses persiapan fitur | Proses persiapan data yang lebih luas |
Jenis-Jenis Feature Engineering
Feature engineering dapat dilakukan dengan berbagai pendekatan tergantung jenis data dan kebutuhan model. Beberapa teknik yang umum digunakan adalah sebagai berikut.
1. Feature Creation
Feature creation adalah membuat fitur baru dari fitur yang sudah tersedia. Contohnya, dataset properti memiliki:
- Luas tanah.
- Luas bangunan.
- Harga rumah.
Dari data tersebut dapat dibuat fitur: Harga per meter persegi = harga rumah ÷ luas bangunan
Fitur tersebut dapat memberikan konteks tambahan mengenai harga properti.
Contoh lainnya dalam data pelanggan: Lama pelanggan = tanggal sekarang − tanggal pendaftaran
Dengan demikian, tanggal pendaftaran diubah menjadi informasi yang lebih relevan bagi model.
2. Feature Transformation
Feature transformation merupakan proses mengubah representasi suatu fitur tanpa menghilangkan informasi penting yang dibutuhkan. Contohnya:
- Log transformation.
- Standardization.
- Min-max scaling.
- Normalization.
- Power transformation.
Scikit-learn menyediakan berbagai transformer untuk melakukan scaling dan transformasi data, termasuk StandardScaler, MinMaxScaler, RobustScaler, PowerTransformer, dan QuantileTransformer. Transformasi tertentu dapat membantu algoritma yang sensitif terhadap skala atau distribusi data. Sebagai contoh, apabila satu fitur memiliki nilai antara 0–1 sedangkan fitur lain berada pada rentang 0–1.000.000, beberapa algoritma dapat bekerja lebih baik apabila skala fitur disesuaikan.
Namun, scaling tidak selalu diperlukan untuk semua model. Algoritma berbasis pohon, misalnya, umumnya tidak memiliki kebutuhan scaling yang sama seperti model yang menggunakan jarak atau optimisasi berbasis gradien.
3. Feature Encoding
Feature encoding digunakan untuk mengubah data kategorikal menjadi representasi yang dapat digunakan model. Misalnya:
| Jenis Paket |
|---|
| Basic |
| Premium |
| Enterprise |
Data tersebut dapat diubah menggunakan one-hot encoding menjadi:
| Basic | Premium | Enterprise |
|---|---|---|
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
One-hot encoding merupakan salah satu teknik encoding yang umum digunakan. Google juga membahas one-hot encoding, feature hashing, dan mean encoding dalam pengolahan data kategorikal.
4. Feature Binning
Feature binning atau discretization mengubah nilai numerik kontinu menjadi beberapa kelompok. Misalnya usia:
- 0–17 tahun
- 18–25 tahun
- 26–35 tahun
- 36–50 tahun
- 50 tahun
Daripada menggunakan usia sebagai angka kontinu, model dapat menggunakan kelompok usia tertentu. Binning dapat berguna ketika hubungan antara variabel numerik dan target tidak linear atau ketika kategori tertentu lebih mudah diinterpretasikan. Namun, binning juga dapat menyebabkan hilangnya informasi jika interval dibuat terlalu kasar.
5. Feature Scaling
Feature scaling digunakan untuk menyamakan atau menyesuaikan skala fitur. Dua teknik yang umum adalah:
- Standardization
Mengubah data sehingga memiliki rata-rata sekitar 0 dan deviasi standar sekitar 1.
- Min-Max Scaling
Mengubah nilai ke dalam rentang tertentu, misalnya 0 sampai 1.
6. Feature Interaction
Feature interaction adalah membuat fitur yang merepresentasikan interaksi antara dua atau lebih variabel. Misalnya terdapat:
- Luas rumah.
- Jumlah kamar.
Dapat dibuat fitur: Luas rumah per kamar = luas rumah ÷ jumlah kamar
Dalam kasus lain, kombinasi dua fitur kategorikal juga dapat menghasilkan informasi baru. Google menyebut teknik semacam ini sebagai feature crosses, yaitu kombinasi fitur yang dapat membantu model menangkap hubungan tertentu antarfitur.
7. Feature Extraction
Feature extraction adalah proses mengambil representasi yang lebih ringkas atau informatif dari data. Contohnya:
- Mengambil TF-IDF dari teks.
- Menghasilkan embedding dari teks.
- Mengambil fitur tertentu dari gambar.
- Menghasilkan representasi numerik dari data berdimensi tinggi.
Dalam machine learning modern, embedding juga digunakan untuk merepresentasikan data dalam bentuk vektor yang dapat diproses oleh model. Google memasukkan embeddings sebagai bagian dari materi machine learning modern.
8. Feature Selection
Feature selection adalah proses memilih fitur yang paling relevan dan mengurangi fitur yang tidak diperlukan. Misalnya terdapat 100 fitur, tetapi hanya sebagian yang memiliki hubungan kuat dengan target. Fitur yang tidak relevan dapat dihilangkan berdasarkan metode statistik, evaluasi model, atau pengetahuan domain. Feature selection berbeda dari feature extraction. Feature selection memilih fitur yang sudah tersedia, sedangkan feature extraction menghasilkan representasi atau fitur baru dari data.
Perbedaan Feature Selection, Feature Extraction, dan Feature Engineering
Ketiganya memiliki hubungan yang erat, tetapi tidak identik.
| Konsep | Pengertian | Contoh |
|---|---|---|
| Feature Engineering | Proses luas untuk merancang dan mengolah fitur | Membuat fitur umur pelanggan |
| Feature Selection | Memilih fitur yang paling relevan | Memilih usia dan pendapatan dari 20 fitur |
| Feature Extraction | Menghasilkan representasi baru dari data | Mengubah teks menjadi TF-IDF atau embedding |
Dengan demikian, feature selection dan feature extraction dapat menjadi bagian dari workflow feature engineering.
Contoh Feature Engineering Sederhana
Misalnya sebuah perusahaan ingin membuat model untuk memprediksi kemungkinan pelanggan melakukan pembelian.
Data awal:
| Pelanggan | Tanggal Daftar | Transaksi | Total Belanja | Transaksi Terakhir |
|---|---|---|---|---|
| A | 2024-01-10 | 20 | Rp5 juta | 2026-08-20 |
| B | 2025-03-15 | 5 | Rp700 ribu | 2026-05-10 |
| C | 2023-06-01 | 50 | Rp15 juta | 2026-08-30 |
Data tersebut dapat diolah menjadi fitur yang lebih informatif.
| Fitur Baru | Cara Membentuk | Makna |
|---|---|---|
| Customer Age | Tanggal sekarang − tanggal daftar | Lama pelanggan |
| Purchase Frequency | Jumlah transaksi ÷ periode pelanggan | Frekuensi transaksi |
| Average Order Value | Total belanja ÷ transaksi | Rata-rata nilai transaksi |
| Recency | Tanggal sekarang − transaksi terakhir | Seberapa baru pelanggan bertransaksi |
| Total Spending | Total belanja | Nilai ekonomi pelanggan |
Hasilnya, model tidak hanya melihat data transaksi mentah, tetapi memperoleh representasi perilaku pelanggan yang lebih relevan.
Feature Engineering Berdasarkan Jenis Data
Teknik feature engineering sangat bergantung pada tipe data.
Data Numerik
Untuk data numerik, teknik yang dapat digunakan antara lain:
- Scaling.
- Normalization.
- Log transformation.
- Binning.
- Polynomial features.
- Ratio atau perbandingan.
- Interaction features.
Scikit-learn menyediakan berbagai transformer untuk standardisasi, normalisasi, discretization, dan polynomial features.
Data Kategorikal
Untuk data kategorikal, teknik yang umum meliputi:
- One-hot encoding.
- Ordinal encoding.
- Target encoding.
- Feature hashing.
- Pengelompokan kategori langka.
Pemilihan metode encoding harus disesuaikan dengan karakteristik data dan algoritma yang digunakan. Misalnya, memberikan angka 1, 2, dan 3 pada kategori yang sebenarnya tidak memiliki urutan dapat membuat model tertentu menganggap terdapat hubungan ordinal yang sebenarnya tidak ada.
Data Tanggal dan Waktu
Tanggal sering kali mengandung informasi yang jauh lebih kaya daripada sekadar format tanggal. Dari sebuah timestamp dapat dibuat:
- Tahun.
- Bulan.
- Minggu.
- Hari.
- Hari dalam minggu.
- Jam.
- Akhir pekan atau bukan.
- Musim.
- Jarak waktu dari suatu kejadian.
- Frekuensi kejadian dalam periode tertentu.
Contohnya, timestamp transaksi dapat diubah menjadi:
transaction_hour = 21
is_weekend = 1
days_since_last_transaction = 4
Fitur tersebut mungkin lebih berguna bagi model dibandingkan timestamp mentah.
Data Teks
Data teks tidak dapat selalu diberikan langsung kepada model machine learning tradisional. Beberapa pendekatan yang dapat digunakan antara lain:
- Bag-of-Words.
- TF-IDF.
- N-gram.
- Feature hashing.
- Word embedding.
- Sentence embedding.
Pemilihan teknik bergantung pada jenis tugas, model, ukuran data, dan kebutuhan representasi.
Data Gambar
Dalam computer vision, feature engineering secara tradisional dapat mencakup ekstraksi karakteristik seperti:
- Edge.
- Bentuk.
- Tekstur.
- Histogram warna.
Namun, pada deep learning modern, banyak fitur visual dapat dipelajari secara otomatis oleh neural network. Hal ini membuat peran feature engineering manual pada beberapa kasus menjadi lebih kecil, meskipun preprocessing dan representasi data tetap penting.
Tahapan Melakukan Feature Engineering
Feature engineering sebaiknya tidak dilakukan secara acak. Prosesnya perlu mengikuti workflow yang terstruktur.
1. Memahami Masalah
Langkah pertama adalah memahami apa yang ingin diprediksi. Misalnya:
- Apakah pelanggan akan churn?
- Berapa harga properti?
- Apakah transaksi merupakan fraud?
- Apakah pelanggan akan membeli produk?
- Berapa permintaan produk minggu depan?
Tujuan tersebut menentukan jenis fitur yang relevan.
2. Memahami Dataset
Selanjutnya, pahami karakteristik data:
- Jumlah baris.
- Jumlah kolom.
- Tipe data.
- Missing values.
- Outlier.
- Distribusi data.
- Data kategorikal.
- Data numerik.
- Duplikasi.
- Hubungan antarfitur.
Tahap ini penting karena feature engineering yang baik membutuhkan pemahaman terhadap data sebelum melakukan transformasi.
3. Menentukan Fitur yang Relevan
Tidak semua kolom harus digunakan. Pertimbangkan apakah sebuah fitur:
- Memiliki hubungan dengan target.
- Tersedia pada saat prediksi.
- Memiliki kualitas data yang baik.
- Tidak menyebabkan data leakage.
- Memiliki makna bisnis.
- Tidak terlalu banyak noise.
4. Membuat Fitur Baru
Setelah memahami data, buat fitur berdasarkan pola yang masuk akal. Contohnya:
- Rasio.
- Selisih.
- Jumlah.
- Rata-rata.
- Frekuensi.
- Recency.
- Rolling statistics.
- Interaksi antarfitur.
5. Melakukan Transformasi
Fitur kemudian dapat ditransformasikan menggunakan metode yang sesuai, seperti:
- Encoding.
- Scaling.
- Normalization.
- Binning.
- Log transformation.
6. Mengevaluasi Fitur
Jangan menganggap fitur baru pasti lebih baik. Bandingkan performa model: Model dengan fitur awal vs Model dengan fitur hasil engineering Gunakan metrik yang sesuai dengan masalah, misalnya:
- Accuracy.
- Precision.
- Recall.
- F1-score.
- ROC-AUC.
- MAE.
- MSE.
- RMSE.
7. Memasukkan Proses ke Pipeline
Dalam implementasi machine learning, transformasi sebaiknya dibuat konsisten antara data training dan data yang digunakan saat inference. Pipeline dapat membantu memastikan preprocessing dan transformasi fitur dilakukan dengan urutan yang sama. Hal ini sangat penting ketika model dipindahkan ke production.
Contoh Feature Engineering pada Beberapa Industri
Feature engineering dapat diterapkan hampir di berbagai bidang.
1. E-Commerce
Untuk prediksi pembelian pelanggan, fitur yang dapat dibuat antara lain:
- Jumlah transaksi.
- Total nilai transaksi.
- Rata-rata nilai transaksi.
- Jumlah hari sejak pembelian terakhir.
- Jumlah produk yang dibeli.
- Frekuensi kunjungan.
- Jumlah kategori produk yang pernah dibeli.
2. Perbankan
Dalam prediksi risiko kredit, fitur dapat mencakup:
- Rasio utang terhadap pendapatan.
- Jumlah keterlambatan pembayaran.
- Rata-rata saldo.
- Frekuensi transaksi.
- Lama hubungan dengan bank.
3. Cybersecurity
Untuk mendeteksi aktivitas mencurigakan, fitur dapat berupa:
- Jumlah login per jam.
- Jumlah IP berbeda.
- Frekuensi kegagalan login.
- Perubahan lokasi login.
- Jumlah request dalam periode tertentu.
- Rasio request sukses dan gagal.
4. Healthcare
Untuk analisis data kesehatan, fitur dapat mencakup:
- Usia.
- Perubahan tekanan darah.
- Rata-rata hasil pemeriksaan.
- Frekuensi kunjungan.
- Jarak waktu antar pemeriksaan.
Dalam domain yang sensitif seperti kesehatan, pembuatan fitur juga harus memperhatikan kualitas data, privasi, validitas klinis, serta potensi bias.
5. Marketing
Untuk memprediksi kemungkinan pelanggan melakukan konversi, fitur dapat berupa:
- Jumlah kunjungan website.
- Jumlah halaman yang dilihat.
- Jumlah interaksi dengan email.
- Frekuensi pembelian.
- Waktu sejak interaksi terakhir.
- Jumlah kampanye yang pernah direspons.
Kesalahan yang Harus Dihindari dalam Feature Engineering
Feature engineering yang buruk dapat menyebabkan model menghasilkan performa yang terlihat bagus saat training tetapi buruk ketika digunakan pada data baru. Beberapa kesalahan berikut perlu diperhatikan.
1. Data Leakage
Data leakage terjadi ketika informasi yang seharusnya tidak tersedia pada saat prediksi masuk ke dalam proses training. Contohnya, perusahaan ingin memprediksi apakah pelanggan akan churn bulan depan. Namun, fitur yang digunakan justru mengandung informasi yang baru diketahui setelah pelanggan churn. Model dapat terlihat sangat akurat karena mendapatkan informasi dari masa depan. Ini merupakan salah satu masalah paling serius dalam feature engineering.
2. Menggunakan Terlalu Banyak Fitur
Menambahkan fitur sebanyak mungkin tidak selalu menghasilkan model yang lebih baik. Fitur yang tidak relevan dapat:
- Menambah noise.
- Meningkatkan kompleksitas.
- Memperbesar waktu komputasi.
- Memperbesar risiko overfitting.
- Menyulitkan interpretasi.
3. Encoding yang Tidak Sesuai
Tidak semua data kategorikal cocok diberi angka secara langsung. Misalnya:
| Browser | Encoding |
|---|---|
| Chrome | 1 |
| Firefox | 2 |
| Safari | 3 |
Jika model memperlakukan angka tersebut sebagai nilai ordinal, model dapat menganggap Safari lebih besar daripada Firefox dan Firefox lebih besar daripada Chrome. Padahal, kategori tersebut tidak memiliki urutan seperti itu. Karena itu, metode encoding harus dipilih berdasarkan karakteristik kategori dan algoritma.
4. Mengabaikan Missing Value
Missing value dapat menyebabkan masalah jika tidak ditangani dengan benar. Pilihan penanganannya dapat mencakup:
- Imputasi.
- Menambahkan indikator missing.
- Menghapus data tertentu.
- Menggunakan metode yang secara native menangani missing value.
Tidak ada satu metode yang selalu paling tepat untuk semua dataset.
5. Mengabaikan Outlier
Outlier dapat memengaruhi beberapa jenis transformasi dan algoritma. Sebelum melakukan transformasi, pahami apakah outlier merupakan:
- Kesalahan input.
- Kondisi yang memang valid.
- Kejadian langka tetapi penting.
Menghapus outlier secara otomatis bukan selalu keputusan yang benar.
6. Melakukan Transformasi Sebelum Train-Test Split
Ini merupakan kesalahan yang cukup umum. Misalnya, scaling dilakukan menggunakan seluruh dataset sebelum data dibagi menjadi training dan testing. Statistik dari data testing secara tidak langsung dapat masuk ke proses training. Pendekatan yang lebih aman adalah melakukan fitting transformasi berdasarkan data training dan kemudian menerapkannya pada validation/test set. Pipeline dapat membantu menjaga proses ini tetap konsisten.
Perbandingan Feature Engineering Manual dan AutoML
Feature engineering secara tradisional banyak dilakukan secara manual oleh data scientist atau machine learning engineer. Namun, saat ini beberapa platform AutoML dapat mengotomatisasi sebagian tugas dalam workflow machine learning. Google menjelaskan bahwa AutoML dapat mengotomatisasi pekerjaan seperti feature engineering, feature selection, pemilihan algoritma, dan hyperparameter tuning. Perbandingannya dapat dilihat berikut:
| Aspek | Manual | AutoML |
|---|---|---|
| Pembuatan fitur | Dirancang manusia | Sebagian dapat diotomatisasi |
| Pengetahuan domain | Sangat penting | Tetap penting |
| Kontrol proses | Tinggi | Lebih terbatas |
| Kecepatan eksperimen | Relatif lebih lambat | Dapat lebih cepat |
| Interpretasi | Lebih mudah dikontrol | Bergantung platform |
| Fleksibilitas | Tinggi | Bergantung kemampuan tools |
| Cocok untuk | Kebutuhan khusus dan domain kompleks | Eksperimen cepat dan workflow standar |
Apakah Feature Engineering Masih Penting di Era Deep Learning?
Ya, feature engineering masih penting di era deep learning, meskipun perannya dapat berbeda tergantung pada jenis data dan model yang digunakan. Pada machine learning klasik, feature engineering sering menjadi bagian penting karena model sangat bergantung pada representasi fitur yang diberikan. Sementara itu, deep learning memungkinkan neural network mempelajari sebagian representasi fitur secara otomatis dari data selama proses training, seperti convolutional neural network yang dapat mempelajari pola visual pada gambar.
Meskipun demikian, deep learning tidak sepenuhnya menghilangkan kebutuhan akan feature engineering. Data tetap perlu dibersihkan dan dipersiapkan, target harus ditentukan dengan tepat, missing value perlu ditangani, format input harus disesuaikan, dan fitur berbasis domain masih dapat memberikan informasi yang bermanfaat. Selain itu, data leakage, pemilihan window waktu, serta konsistensi data antara proses training dan inference juga perlu diperhatikan.
Dengan demikian, deep learning dapat mengurangi kebutuhan terhadap sebagian feature engineering manual, tetapi tidak menghilangkan pentingnya merancang dan menyiapkan data dengan tepat.
Feature Engineering dan Feature Store
Dalam sistem machine learning skala besar, fitur yang sama dapat digunakan oleh banyak model. Misalnya sebuah perusahaan memiliki fitur:
- Customer lifetime.
- Total transaksi.
- Average order value.
- Number of failed payments.
Fitur tersebut mungkin digunakan oleh berbagai model sekaligus. Feature store dapat membantu organisasi mengelola dan menyediakan fitur secara lebih terstruktur agar fitur dapat digunakan secara konsisten dalam workflow machine learning. Hal ini menjadi semakin penting ketika organisasi memiliki banyak model, banyak tim, dan kebutuhan deployment yang kompleks.
Praktik Terbaik Feature Engineering
Agar feature engineering menghasilkan fitur yang benar-benar bermanfaat, beberapa praktik berikut dapat diterapkan.
- Pahami Tujuan Model
Jangan membuat fitur hanya karena fitur tersebut tersedia. Selalu tanyakan: Apakah fitur ini membantu menjawab masalah yang ingin diprediksi?
- Gunakan Pengetahuan Domain
Pengetahuan bisnis dapat membantu menemukan hubungan yang tidak selalu terlihat dari analisis statistik sederhana.
- Hindari Data Leakage
Pastikan setiap fitur hanya menggunakan informasi yang memang tersedia pada waktu prediksi.
- Buat Fitur yang Dapat Direproduksi
Fitur yang digunakan saat training harus dapat dibuat kembali dengan cara yang sama ketika model digunakan di production.
- Validasi dengan Eksperimen
Bandingkan performa sebelum dan sesudah feature engineering. Jangan menganggap fitur baru pasti meningkatkan performa.
- Jangan Terlalu Banyak Membuat Fitur
Lebih banyak fitur bukan berarti lebih baik. Fokus pada fitur yang memiliki alasan kuat untuk digunakan.
- Gunakan Pipeline
Pipeline membantu menjaga preprocessing dan feature transformation tetap konsisten.
- Dokumentasikan Setiap Fitur
Untuk sistem production, dokumentasikan:
-
- Nama fitur.
- Definisi.
- Sumber data.
- Cara perhitungan.
- Frekuensi pembaruan.
- Waktu ketersediaan.
- Model yang menggunakan fitur.
- Potensi risiko leakage.
Dokumentasi tersebut akan sangat membantu ketika sistem semakin besar.
Contoh Alur Feature Engineering
Secara sederhana, proses feature engineering dapat digambarkan sebagai berikut:
Raw Data
↓
Data Cleaning
↓
Data Exploration
↓
Feature Creation
↓
Feature Transformation
↓
Feature Encoding
↓
Feature Selection
↓
Model Training
↓
Model Evaluation
↓
Deployment
Namun, proses tersebut tidak selalu berjalan satu arah. Setelah model dievaluasi, data scientist dapat kembali membuat atau mengubah fitur berdasarkan hasil eksperimen. Karena itu, feature engineering biasanya merupakan proses iteratif.
Hubungan Feature Engineering dengan Performa Machine Learning
Feature engineering dapat memberikan dampak besar terhadap performa model karena model hanya dapat mempelajari pola dari representasi data yang tersedia.
Misalnya terdapat data: Tanggal lahir = 15 Januari 1995
Untuk model tertentu, tanggal tersebut mungkin kurang informatif dalam bentuk mentah.
Data tersebut dapat diubah menjadi: Usia = 31 tahun
Usia lebih mudah digunakan untuk merepresentasikan karakteristik pelanggan.
Contoh lain: Total transaksi = 100
Angka tersebut belum tentu memiliki arti yang sama bagi pelanggan yang sudah menggunakan layanan selama satu bulan dan pelanggan yang sudah menggunakan layanan selama sepuluh tahun.
Dengan feature engineering, data tersebut dapat diubah menjadi: Transaksi per bulan = total transaksi ÷ lama penggunaan
Representasi tersebut dapat memberikan konteks yang lebih baik. Namun, perlu ditekankan bahwa feature engineering bukan pengganti pemilihan algoritma, hyperparameter tuning, evaluasi model, maupun kualitas dataset. Model tetap harus diuji secara menyeluruh.
Tantangan dalam Feature Engineering
Beberapa tantangan yang sering muncul antara lain:
- Data Tidak Berkualitas
Data yang tidak lengkap, tidak konsisten, atau memiliki banyak kesalahan dapat menyulitkan pembuatan fitur.
- Data Berubah Seiring Waktu
Fitur yang valid saat model dibuat belum tentu tetap valid beberapa bulan kemudian.
- Feature Drift
Distribusi fitur dapat berubah seiring waktu sehingga hubungan antara fitur dan target juga dapat berubah.
- Data Berdimensi Tinggi
Dataset dengan banyak fitur dapat meningkatkan kompleksitas dan membutuhkan strategi feature selection atau dimensionality reduction.
- Konsistensi Training dan Production
Fitur harus dihitung dengan cara yang konsisten ketika training maupun ketika model digunakan untuk prediksi.
- Keterbatasan Waktu
Feature engineering yang terlalu kompleks dapat meningkatkan biaya komputasi dan latency ketika model berjalan secara real-time.
Tools yang Dapat Digunakan untuk Feature Engineering
Feature engineering dapat dilakukan menggunakan berbagai tools dan library. Beberapa yang umum digunakan antara lain:
| Tools | Kegunaan |
|---|---|
| Python | Bahasa pemrograman yang banyak digunakan untuk machine learning |
| pandas | Manipulasi dan transformasi data |
| NumPy | Operasi numerik dan array |
| scikit-learn | Preprocessing, feature selection, feature transformation, dan machine learning |
| TensorFlow | Deep learning dan machine learning |
| PyTorch | Deep learning |
| Spark | Pemrosesan data berskala besar |
| AutoML | Mengotomatisasi sebagian workflow machine learning |
Kesimpulan
Feature engineering adalah proses mengolah, membuat, memilih, dan mengubah fitur dari data mentah agar lebih relevan bagi model machine learning. Teknik ini mencakup feature creation, transformation, encoding, scaling, feature extraction, hingga feature selection. Dengan fitur yang tepat, model dapat lebih mudah mengenali pola dan menghasilkan prediksi yang lebih optimal.
Namun, feature engineering bukan sekadar menambahkan banyak fitur. Setiap fitur harus relevan, bebas dari data leakage, dapat digunakan secara konsisten, dan perlu diuji untuk mengetahui pengaruhnya terhadap performa model. Meskipun sebagian proses kini dapat dibantu oleh deep learning dan AutoML, pemahaman terhadap data dan konteks penggunaannya tetap penting.
Untuk mempelajari lebih banyak topik seputar machine learning, artificial intelligence, teknologi, website, dan hosting, Anda juga dapat menemukan berbagai informasi praktis lainnya di Blog Hosteko.
