
Pernahkah kamu merasa model machine learning yang kamu buat belum mencapai akurasi optimal? Salah satu kuncinya bisa jadi ada pada feature engineering. Proses ini bukan sekadar menyiapkan data, tetapi juga mengubahnya menjadi fitur yang lebih bernilai bagi model.
Dengan teknik yang tepat, kamu bisa meningkatkan performa prediksi tanpa harus mengganti algoritma yang digunakan. Jadi, bagaimana cara melakukan feature engineering dengan efektif? Yuk, kita bahas lebih dalam!
Apa Itu Feature Engineering?
Feature engineering adalah proses mengubah data mentah menjadi fitur yang lebih relevan dan bermakna untuk meningkatkan performa model machine learning. Ini mencakup pembuatan fitur baru, transformasi, pemilihan fitur yang paling berpengaruh, hingga pengurangan dimensi agar model dapat lebih memahami pola dalam data.
Dengan teknik yang tepat, feature engineering dapat membantu model menghasilkan prediksi yang lebih akurat tanpa harus mengganti algoritma yang digunakan.
Baca Juga: 10 Istilah Data Engineering yang Sering Digunakan
Proses Feature Engineering
Feature engineering bukan hanya sekadar menyiapkan data, tetapi juga mengoptimalkannya agar model machine learning dapat bekerja lebih efektif. Proses ini melibatkan berbagai langkah, mulai dari memahami data, mentransformasikannya, hingga memilih fitur yang paling berpengaruh. Berikut tahapan utama dalam feature engineering:
1. Memahami Data
Sebelum melakukan feature engineering, kamu perlu memahami karakteristik data yang akan digunakan. Ini mencakup analisis pola, distribusi, serta kemungkinan adanya noise dalam data. Berikut penjelasannya:
- Eksplorasi Data (EDA – Exploratory Data Analysis): EDA bertujuan untuk memahami struktur data dengan visualisasi dan statistik deskriptif. Teknik seperti histogram, scatter plot, dan box plot membantu dalam mengidentifikasi pola dan anomali.
- Identifikasi Fitur yang Relevan: Tidak semua fitur dalam dataset memiliki dampak signifikan terhadap model. Dengan memahami domain masalah, kamu bisa menentukan fitur mana yang memiliki korelasi tinggi dengan target prediksi.
- Deteksi Outlier dan Missing Values: Data sering kali mengandung outlier atau nilai yang hilang (missing values), yang dapat memengaruhi hasil model. Teknik seperti IQR (Interquartile Range) dan mean/mode imputation sering digunakan untuk menanganinya.
2. Transformasi Data
Agar data lebih mudah dipahami oleh model, diperlukan beberapa teknik transformasi untuk menyesuaikan skala dan formatnya. Berikut ini prosesnya:
- Normalisasi dan Standarisasi: Normalisasi digunakan untuk mengubah skala data agar berada dalam rentang tertentu (misalnya 0 hingga 1), sedangkan standardisasi memastikan distribusi data memiliki rata-rata nol dan standar deviasi satu.
- Encoding Variabel Kategorikal: Data kategorik perlu dikonversi ke format numerik agar bisa diproses oleh algoritma machine learning. Teknik seperti one-hot encoding, label encoding, dan target encoding sering digunakan.
- Handling Missing Values: Missing values dapat diatasi dengan berbagai teknik, seperti menggantinya dengan mean/median, menggunakan model prediktif, atau bahkan menghapus data jika jumlahnya terlalu banyak.
3. Feature Creation (Pembuatan Fitur Baru)
Membuat fitur baru dari data yang ada dapat membantu model memahami pola dengan lebih baik. Simak penjelasannya berikut ini:
- Kombinasi Fitur yang Ada: Menggabungkan dua atau lebih fitur yang saling berhubungan dapat menghasilkan informasi baru yang lebih bernilai, seperti menghitung rasio atau selisih antar fitur.
- Feature Extraction dari Teks, Gambar, atau Sinyal: Dalam NLP (Natural Language Processing), fitur dapat diekstrak menggunakan teknik seperti TF-IDF atau word embeddings. Untuk gambar, metode seperti edge detection atau histogram of gradients bisa diterapkan.
- Feature Selection Menggunakan Domain Knowledge: Memahami konteks data sangat penting dalam memilih fitur yang relevan. Pengetahuan domain membantu mengeliminasi fitur yang kurang berguna atau justru menambahkan fitur baru yang lebih informatif.
4. Feature Selection (Pemilihan Fitur)
Setelah fitur dibuat, langkah selanjutnya memilih fitur yang paling berkontribusi terhadap model. Berikut ini prosesnya:
- Filter Methods (Statistik, Korelasi, dll.): Metode ini menggunakan teknik statistik seperti chi-square test, korelasi Pearson, atau ANOVA untuk menentukan fitur yang paling berkaitan dengan target.
- Wrapper Methods (Recursive Feature Elimination, Forward/Backward Selection): Menggunakan model untuk secara iteratif menilai fitur mana yang paling berpengaruh, misalnya dengan Recursive Feature Elimination (RFE).
- Embedded Methods (LASSO, Decision Trees, Random Forest): Algoritma seperti LASSO regression atau random forest memiliki fitur bawaan untuk memilih fitur yang paling penting selama pelatihan model.
5. Dimensionality Reduction (Pengurangan Dimensi)
Jika dataset memiliki terlalu banyak fitur, teknik reduksi dimensi dapat membantu menyederhanakan data tanpa kehilangan informasi penting. Berikut prosesnya:
- PCA (Principal Component Analysis): Teknik yang mengubah fitur yang ada menjadi kombinasi baru yang lebih ringkas, tetapi tetap mempertahankan informasi utama.
- LDA (Linear Discriminant Analysis): Berfokus pada memaksimalkan separasi antar kelas dalam dataset untuk meningkatkan klasifikasi.
- t-SNE dan UMAP: Teknik non-linear yang sering digunakan untuk visualisasi data berdimensi tinggi dalam bentuk dua atau tiga dimensi.
Baca Juga: Ini Data Engineering Certificate yang Dilirik HR
Teknik Feature Engineering Berdasarkan Tipe Data
Setiap jenis data memiliki karakteristik unik yang memerlukan teknik feature engineering yang berbeda. Teknik yang tepat dapat meningkatkan pemahaman model terhadap pola dalam data dan meningkatkan akurasi prediksi. Berikut beberapa teknik feature engineering berdasarkan tipe data:
1. Numerical Data
Data numerik sering kali perlu dinormalisasi atau diubah agar lebih mudah dipahami oleh model.
- Scaling (Min-Max, Z-score, Log Transform): Scaling bertujuan untuk menyamakan skala antar fitur. Min-Max Scaling merentangkan nilai ke dalam rentang tertentu (misalnya 0-1), sedangkan Z-score standardization memastikan distribusi memiliki rata-rata nol dan standar deviasi satu. Log transform berguna untuk menangani distribusi yang miring (skewed data).
- Binning (Discretization): Teknik ini mengelompokkan nilai numerik menjadi beberapa kategori atau bins (misalnya, usia dikelompokkan menjadi anak-anak, remaja, dan dewasa). Ini membantu mengurangi noise dan membuat pola lebih jelas.
2. Categorical Data
Data kategorikal harus dikonversi ke bentuk numerik agar bisa digunakan dalam model machine learning.
- One-hot Encoding: Teknik ini mengubah kategori menjadi vektor biner (misalnya, kategori “merah”, “biru”, “hijau” menjadi tiga kolom berbeda dengan nilai 0 atau 1).
- Label Encoding: Setiap kategori dikonversi menjadi angka unik (misalnya, “merah” = 0, “biru” = 1, “hijau” = 2). Ini cocok untuk data dengan hubungan ordinal.
- Target Encoding: Mengganti kategori dengan rata-rata target berdasarkan kategori tersebut, sering digunakan dalam model berbasis statistik seperti regresi.
3. Text Data
Data teks membutuhkan representasi numerik agar bisa dipahami oleh algoritma machine learning.
- TF-IDF (Term Frequency – Inverse Document Frequency): Teknik ini mengukur seberapa penting sebuah kata dalam dokumen dibandingkan dengan keseluruhan kumpulan dokumen, membantu menghilangkan kata-kata yang sering muncul tetapi tidak bermakna.
- Word Embeddings (Word2Vec, GloVe, BERT): Representasi kata dalam bentuk vektor yang lebih kompleks, seperti Word2Vec dan GloVe, memungkinkan model memahami hubungan semantik antar kata. BERT lebih canggih karena mempertimbangkan konteks dalam kalimat.
4. Time-Series Data
Data berbasis waktu sering kali memerlukan teknik khusus untuk menangkap tren dan pola musiman.
- Rolling Statistics (Moving Average, Exponential Smoothing): Menggunakan rata-rata bergerak untuk menangkap tren dalam data (misalnya, rata-rata harga saham selama 7 hari terakhir).
- Lag Features dan Seasonal Decomposition: Lag features menambahkan nilai sebelumnya sebagai fitur, sementara seasonal decomposition memisahkan tren, musiman, dan komponen residu dari data waktu.
5. Image Data
Fitur dari gambar dapat diekstrak untuk membantu model mengenali pola visual.
- Edge Detection: Teknik ini menyoroti batas objek dalam gambar menggunakan algoritma seperti Canny Edge Detection.
- Histogram of Oriented Gradients (HOG): Metode ini mengekstrak fitur tekstur dengan menganalisis gradien dan arah tepi dalam gambar, sering digunakan dalam pengenalan objek.
6. Geospatial Data
Data berbasis lokasi memerlukan teknik khusus untuk memahami pola geografis.
- Clustering Berbasis Lokasi: Mengelompokkan titik-titik geografis berdasarkan kedekatan atau pola tertentu menggunakan algoritma seperti K-Means atau DBSCAN.
- Distance-Based Features: Menghitung jarak antara titik geografis tertentu, misalnya jarak rumah ke pusat kota, yang bisa menjadi fitur penting dalam model prediktif.
Tools dan Library untuk Feature Engineering
Untuk membantu proses feature engineering terdapat berbagai tools dan library yang dapat digunakan, mulai dari manipulasi data hingga ekstraksi fitur menggunakan deep learning. Berikut beberapa tools dan library yang umum digunakan dalam feature engineering:
1. Pandas & NumPy untuk Manipulasi Data
Pandas dan NumPy adalah dua library utama dalam ekosistem Python yang digunakan untuk manipulasi data.
Pandas menyediakan struktur data seperti DataFrame yang memungkinkan transformasi data dengan mudah, seperti menangani data yang hilang, melakukan encoding kategori, serta menggabungkan dataset.
NumPy, di sisi lain, lebih berfokus pada operasi numerik dengan array multidimensi yang efisien, yang sering digunakan dalam perhitungan statistik dan transformasi fitur.
2. Scikit-learn untuk Preprocessing
Scikit-learn menyediakan berbagai modul untuk preprocessing data, termasuk normalisasi, standardisasi, encoding kategori, dan penanganan nilai yang hilang. Library ini juga memiliki fitur PolynomialFeatures untuk membuat fitur baru berdasarkan kombinasi fitur yang ada serta Feature Selection untuk memilih fitur yang paling relevan dalam model machine learning.
3. Featuretools untuk Automated Feature Engineering
Featuretools adalah library open-source yang digunakan untuk otomatisasi feature engineering. Dengan konsep Deep Feature Synthesis (DFS), Featuretools mampu membuat fitur baru secara otomatis dari dataset relational, sehingga menghemat waktu dalam eksplorasi fitur. Library ini sangat berguna dalam menangani data time-series dan data berbasis entitas yang kompleks.
4. TensorFlow dan PyTorch untuk Deep Learning Feature Extraction
TensorFlow dan PyTorch merupakan dua framework deep learning yang dapat digunakan untuk mengekstrak fitur dari data tidak terstruktur seperti gambar, teks, dan audio. Dengan menggunakan model deep learning yang telah dilatih sebelumnya (pretrained models) seperti ResNet, BERT, atau VGG, kita dapat mengekstrak representasi fitur dari data yang kompleks dan meningkatkan performa model machine learning secara signifikan.
Best Practices dalam Feature Engineering
Feature engineering termasuk proses krusial dalam machine learning yang dapat berdampak besar pada performa model. Agar fitur yang dihasilkan berkualitas dan tidak menyesatkan model, ada beberapa praktik terbaik yang harus diterapkan. Berikut beberapa best practices dalam feature engineering:
1. Menghindari Data Leakage
Data leakage terjadi ketika informasi dari data uji atau masa depan secara tidak sengaja digunakan dalam proses pelatihan model. Hal ini dapat menyebabkan model memiliki performa yang sangat baik pada data pelatihan tetapi gagal saat diuji di dunia nyata. Untuk menghindari data leakage, pastikan preprocessing data dilakukan hanya pada data pelatihan sebelum dibagi menjadi train dan test set.
2. Memastikan Fitur Relevan dengan Problem Statement
Setiap fitur yang digunakan dalam model harus memiliki relevansi dengan masalah yang ingin diselesaikan. Proses eksplorasi data (EDA) dan pemahaman domain sangat penting dalam menentukan fitur mana yang memiliki nilai prediktif. Menggunakan teknik seperti mutual information atau feature importance dari model dapat membantu dalam memilih fitur yang paling berpengaruh.
3. Memeriksa Multikolinearitas Antar Fitur
Multikolinearitas terjadi ketika dua atau lebih fitur memiliki korelasi yang sangat tinggi, yang dapat menyebabkan ketidakstabilan dalam model dan mengurangi interpretabilitasnya. Untuk mendeteksi multikolinearitas, dapat digunakan Variance Inflation Factor (VIF) atau matriks korelasi. Jika ditemukan fitur dengan korelasi tinggi, salah satu di antaranya sebaiknya dihapus atau digabungkan.
4. Validasi Hasil Feature Engineering dengan Eksperimen
Setiap perubahan dalam feature engineering harus divalidasi melalui eksperimen, seperti membandingkan performa model sebelum dan sesudah menambahkan fitur baru. Teknik seperti cross-validation dapat digunakan untuk memastikan fitur yang ditambahkan benar-benar meningkatkan performa model dan bukan hanya meningkatkan hasil secara kebetulan.
Baca Juga: 7 Data Engineering Tools yang Wajib Kamu Kuasai
Studi Kasus dan Implementasi Feature Engineering
Feature engineering dapat diterapkan dalam berbagai jenis masalah machine learning, termasuk regresi, klasifikasi, NLP, dan computer vision. Berikut beberapa studi kasus dan implementasi feature engineering dalam berbagai skenario:
1. Contoh Kasus Feature Engineering dalam Regresi
Dalam masalah regresi, seperti memprediksi harga rumah, fitur-fitur yang relevan dapat meningkatkan akurasi model. Teknik feature engineering yang umum digunakan meliputi:
- Transformasi variabel: Menggunakan log transform pada harga rumah untuk mengatasi distribusi yang tidak normal.
- Feature interaction: Membuat fitur baru seperti harga per meter persegi berdasarkan luas bangunan dan harga rumah.
- Encoding kategori: Mengubah fitur kategori seperti tipe properti menjadi representasi numerik dengan one-hot encoding atau target encoding.
2. Feature Engineering dalam Klasifikasi
Dalam masalah klasifikasi, seperti mendeteksi churn pelanggan, teknik berikut sering diterapkan:
- Binning: Mengelompokkan umur pelanggan ke dalam kategori (misalnya: muda, dewasa, senior) untuk menyederhanakan hubungan dengan target.
- Feature scaling: Normalisasi atau standardisasi fitur numerik agar model berbasis gradient descent bekerja lebih optimal.
- Feature selection: Menggunakan mutual information atau SHAP values untuk memilih fitur yang paling berkontribusi terhadap prediksi.
3. Feature Engineering dalam NLP dan Computer Vision
Dalam NLP dan computer vision, feature engineering membantu mengubah data tidak terstruktur menjadi representasi numerik yang dapat dipahami oleh model:
- NLP: Menggunakan teknik seperti TF-IDF, word embeddings (Word2Vec, BERT), atau n-grams untuk menangkap hubungan antar kata dalam teks.
- Computer Vision: Ekstraksi fitur dari gambar menggunakan HOG (Histogram of Oriented Gradients), SIFT (Scale-Invariant Feature Transform), atau menggunakan pretrained deep learning models untuk mendapatkan fitur tingkat tinggi dari gambar.
Baca Juga: Time Series Database: Pengertian, Manfaat, dan Karakteristiknya
Kesimpulan
Feature engineering merupakan proses krusial dalam machine learning yang bertujuan untuk meningkatkan kualitas data agar model dapat belajar lebih efektif dan menghasilkan prediksi yang lebih akurat.
Dengan memahami dan merancang fitur yang relevan, model dapat menangkap pola yang lebih bermakna, mengurangi noise, dan meningkatkan kinerja secara signifikan. Namun, tantangan seperti pemilihan fitur yang optimal, risiko overfitting, serta kebutuhan akan automasi yang lebih efisien terus menjadi perhatian utama.
Ke depan, perkembangan feature engineering akan semakin dipengaruhi oleh teknik otomatisasi seperti Automated Feature Engineering, pemanfaatan deep learning untuk ekstraksi fitur, serta integrasi dengan Explainable AI (XAI) agar prosesnya lebih transparan dan dapat diinterpretasikan dengan lebih baik.
Tertarik Berkarier dalam Bidang Data? Ikuti Bootcamp Data Science di Digital Skola
Jika kamu tertarik mendalami dunia data dan ingin menjadi Data Scientist yang andal, memahami feature engineering hanyalah salah satu langkah penting dalam perjalananmu. Untuk benar-benar menguasai Data Science, kamu perlu pengalaman langsung, sertifikasi yang diakui, serta portofolio yang kuat.
Bootcamp Data Science di Digital Skola menawarkan program lengkap dengan sertifikasi nasional (BNSP) dan internasional (Azure), pengalaman magang nyata, 7 portofolio profesional, serta praktik AI dalam analisis data.
Jangan lewatkan kesempatan ini untuk membangun karier di bidang data. Daftar sekarang dan jadilah Data Scientist masa depan.