BAB 7 : Data Prepprocessing & Feature Engineering
A. DASAR TEORI
1. Data Cleaning
a. Identifikasi Data Kotor
Sebelum memasuki proses analisis atau membangun model Machine Learning, langkah paling penting yang harus dilakukan adalah memastikan bahwa data berada dalam kondisi yang benar dan dapat dipercaya. Data yang “kotor” atau tidak berkualitas dapat menyebabkan hasil analisis melenceng dan model prediksi menjadi tidak akurat.
Data kotor bisa berasal dari berbagai sumber, misalnya:
-
Duplikasi data, yaitu data yang tercatat lebih dari satu kali sehingga menyebabkan perhitungan menjadi tidak tepat.
-
Outlier, yaitu nilai yang sangat jauh dari pola umum dan berpotensi mengganggu proses analisis atau membuat model bias.
-
Kesalahan input, seperti kesalahan pengetikan, kesalahan format angka, atau ketidaksesuaian satuan yang menyebabkan nilai menjadi tidak logis.
-
Inkonsistensi skala, misalnya ukuran yang harusnya dalam meter namun tercampur dengan sentimeter, atau nilai tanggal yang tidak sesuai urutan.
-
Nilai yang tidak mungkin, seperti usia 200 tahun, gaji -50 juta, atau nilai transaksi negatif tanpa keterangan khusus.
Mengidentifikasi berbagai bentuk data kotor ini merupakan pondasi awal yang sangat penting agar proses analisis berikutnya dapat berjalan dengan benar dan menghasilkan informasi yang valid.
b. Penanganan Missing Values
Kehilangan nilai atau missing values adalah masalah yang sering ditemui pada dataset, baik akibat kesalahan teknis, ketidaklengkapan pengisian data, atau responden yang tidak memberikan jawaban. Untuk memperbaikinya, beberapa metode dapat digunakan tergantung kondisi data.
Beberapa teknik penanganan antara lain:
-
Mean/Median Imputation, yaitu menggantikan nilai kosong dengan nilai rata-rata atau median dari kolom tersebut. Cara ini digunakan untuk data numerik, namun pemilihannya harus disesuaikan dengan kondisi data (median lebih baik jika banyak outlier).
-
Menghapus baris atau kolom (Drop Rows/Columns) jika jumlah nilai kosong terlalu banyak atau bagian tersebut tidak memiliki kontribusi signifikan terhadap analisis.
-
Custom Imputation, yaitu mengisi nilai kosong dengan nilai tertentu berdasarkan kategori, seperti memberi label “Tidak Diketahui” atau “Unknown” pada data kategorikal.
Pemilihan metode yang tepat sangat bergantung pada jenis dataset, konteks analisis, serta tujuan pemodelan yang ingin dicapai.
c. Contoh Kasus: Data Penjualan Online
Sebagai ilustrasi, bayangkan sebuah dataset penjualan online yang berisi data pelanggan, seperti ID pelanggan, jumlah barang yang dibeli, total belanja, serta tanggal transaksi. Dalam dataset seperti ini, berbagai bentuk data bermasalah dapat mudah ditemui.
Contohnya:
-
Jumlah barang atau total pembayaran bernilai negatif, yang menandakan adanya kesalahan entri data atau sistem.
-
Transaksi ganda (duplikasi), di mana satu transaksi muncul dua kali sehingga membuat total penjualan menjadi tidak akurat.
-
Data invoice dengan informasi tidak lengkap, misalnya tidak ada nama pelanggan atau tidak ada rincian barang.
Untuk memperbaiki hal tersebut, proses data cleaning dapat dilakukan dengan:
-
Menghapus duplikasi data,
-
Mengoreksi nilai yang tidak logis,
-
Mengisi atau memperkirakan nilai yang hilang,
-
Melakukan normalisasi agar data lebih mudah diolah pada tahap analisis berikutnya.
Data yang telah dibersihkan inilah yang nantinya siap digunakan untuk proses analisis, visualisasi, atau pembangunan model Machine Learning yang lebih akurat.
2. Normalisasi & Standarisasi
Normalisasi dan standarisasi merupakan salah satu langkah penting dalam proses data preprocessing, terutama ketika dataset memiliki fitur dengan skala nilai yang berbeda jauh. Banyak algoritma Machine Learning modern—seperti K-Nearest Neighbors (KNN), Naive Bayes, Support Vector Machine, maupun regresi linear—sangat peka terhadap perbedaan skala antar fitur. Ketidakteraturan skala ini dapat menyebabkan model memberikan bobot yang tidak seimbang pada fitur tertentu, sehingga hasil prediksi menjadi tidak akurat.
Sebagai contoh, bayangkan sebuah dataset yang memiliki dua variabel: usia dan pendapatan. Rentang usia biasanya berada pada kisaran 1–100, sementara pendapatan bisa mencapai angka ratusan ribu hingga jutaan. Jika kedua fitur ini langsung dimasukkan ke dalam model tanpa dilakukan penyesuaian skala, maka fitur dengan nilai yang lebih besar (misalnya pendapatan) akan mendominasi proses perhitungan jarak atau perhitungan bobot. Akibatnya, algoritma akan menilai fitur tersebut jauh lebih penting dibandingkan fitur lain, meskipun kenyataannya tidak selalu demikian.
Untuk mengatasi masalah tersebut, dilakukan proses normalisasi (mengubah skala fitur menjadi rentang tertentu, seperti 0–1) atau standarisasi (mengubah distribusi data agar memiliki mean = 0 dan standar deviasi = 1). Dengan menyamakan skala seperti ini, setiap fitur memiliki pengaruh yang setara dalam proses pelatihan model, sehingga hasil analisis dan prediksi menjadi lebih stabil dan akurat.
3. Feature Selection & Feature Extraction
Kinerja sebuah model tidak hanya dipengaruhi oleh banyaknya fitur, tetapi oleh sejauh mana fitur tersebut relevan dan informatif. Oleh karena itu, feature selection dan feature extraction menjadi langkah penting untuk meningkatkan kualitas model. Keduanya berfungsi seperti memilih bahan baku terbaik dalam sebuah resep—pemilihan fitur yang tepat akan membuat model bekerja lebih akurat, cepat, dan efisien.
Feature Selection (Pemilihan Fitur Relevan)
Feature selection berfokus pada memilih fitur-fitur yang benar-benar memberikan kontribusi besar terhadap prediksi. Fitur yang terlalu banyak atau mengandung informasi berulang dapat mengurangi akurasi model dan menambah risiko overfitting.
Beberapa pendekatan yang umum digunakan antara lain:
-
Filter Methods, misalnya menggunakan korelasi, chi-square, atau mutual information untuk menilai hubungan antara fitur dan label.
-
Wrapper Methods, seperti recursive feature elimination yang memilih fitur berdasarkan kinerja model secara iteratif.
-
Embedded Methods, contohnya Lasso Regression yang mampu “menghilangkan” fitur kurang penting melalui regularisasi sehingga koefisiennya menjadi nol.
Dengan mengurangi jumlah fitur yang tidak relevan, waktu pelatihan menjadi lebih cepat, biaya komputasi berkurang, dan model lebih mudah ditafsirkan.
Feature Extraction (Transformasi Fitur)
Berbeda dengan feature selection yang hanya memilih fitur yang sudah ada, feature extraction mengubah beberapa fitur asli menjadi bentuk baru yang lebih ringkas dan lebih informatif. Teknik ini sangat berguna ketika dataset berisi fitur dalam jumlah besar atau memiliki korelasi tinggi.
Metode yang banyak digunakan adalah:
-
Principal Component Analysis (PCA), yaitu metode reduksi dimensi yang mengekstrak fitur-fitur baru berdasarkan kombinasi linear dari fitur lama.
Misalnya, dari 60 fitur awal, PCA dapat menghasilkan 10 komponen utama yang memuat sebagian besar informasi.
Komponen baru ini mampu menekan risiko overfitting sekaligus mempermudah interpretasi hasil model.
4. Best Practices dalam Preprocessing
Preprocessing merupakan tahap fundamental dalam pipeline Machine Learning karena kualitas data menentukan seberapa baik model akan bekerja. Prinsip “garbage in, garbage out” menegaskan bahwa data yang buruk tidak akan menghasilkan model yang baik, meskipun algoritma yang digunakan sangat canggih.
Workflow Umum Proses Preprocessing
Untuk menghasilkan proses yang lebih efisien dan mengurangi kesalahan, preprocessing sebaiknya mengikuti alur berikut:
a. Menangani data tidak lengkap (missing values), outlier, dan kesalahan input.
b. Melakukan transformasi skala melalui normalisasi atau standardisasi.
c. Mengonversi fitur numerik/non-numerik ke bentuk yang sesuai kebutuhan model.
d. Mengolah data kategorikal dengan teknik encoding seperti one-hot encoding.
e. Melakukan pembagian dataset menjadi data latih dan data uji.
f. Membangun pipeline preprocessing agar seluruh langkah ini berjalan otomatis dan konsisten.
Tools Pendukung Preprocessing pada Scikit-Learn
Scikit-Learn menyediakan berbagai fungsi yang sangat membantu dalam melakukan preprocessing data. Beberapa di antaranya adalah:
-
SimpleImputer: mengisi nilai kosong dengan mean, median, atau modus.
-
MinMaxScaler dan StandardScaler: melakukan penskalaan fitur numerik.
-
LabelEncoder dan OneHotEncoder: mengubah data kategorikal menjadi format numerik.
-
SelectKBest: memilih fitur terbaik berdasarkan skor statistik.
-
PCA: mengekstraksi fitur baru untuk reduksi dimensi.
-
Pipeline: menggabungkan seluruh proses preprocessing agar lebih konsisten, bersih, dan dapat digunakan kembali pada berbagai dataset.
Pendekatan ini membantu membuat proses preprocessing lebih terstruktur, efisien, dan mudah direproduksi sesuai standar workflow data science.
Komentar
Posting Komentar