Praktikum Modul 7: Data Preprocessing & Feature Engineering
Pada pembelajaran modul 7 ini, kita mempelajari tahapan krusial dalam machine learning yang sering kali menentukan keberhasilan model, yaitu Data Preprocessing dan Feature Engineering. Sebelum data dapat digunakan untuk melatih model prediktif, data mentah harus melalui serangkaian proses pembersihan, transformasi, dan optimasi agar dapat diinterpretasikan dengan baik oleh algoritma. Data Preprocessing mencakup penanganan missing values, deteksi dan penanganan outlier, normalisasi atau standardisasi fitur, serta encoding variabel kategorikal. Salah satu aspek penting dalam preprocessing adalah feature scaling, yaitu proses mengubah skala fitur numerik agar berada dalam rentang yang sebanding. Hal ini sangat krusial untuk algoritma berbasis jarak seperti K-Nearest Neighbors (KNN), di mana fitur dengan nilai besar dapat mendominasi perhitungan jarak dan mengabaikan fitur lain yang sebenarnya relevan. Modul ini memperkenalkan dua teknik scaling utama: StandardScaler yang mentransformasi data ke distribusi dengan mean 0 dan standar deviasi 1, serta MinMaxScaler yang mengubah data ke rentang tertentu seperti [0,1].
Lebih jauh lagi, modul ini membahas Feature Engineering, yaitu proses menciptakan, memilih, atau mengekstraksi fitur yang paling relevan untuk meningkatkan kemampuan prediktif model. Teknik seperti Feature Selection menggunakan SelectKBest membantu mengidentifikasi fitur yang memiliki hubungan statistik terkuat dengan target variable, sementara Feature Extraction seperti PCA (Principal Component Analysis) mengurangi dimensi data sambil mempertahankan informasi penting. Namun, tidak semua teknik cocok untuk semua kasus seperti yang akan kita lihat dalam praktikum, PCA yang merupakan teknik unsupervised dapat menghilangkan informasi diskriminatif penting dalam dataset imbalanced, sedangkan SelectKBest yang bersifat supervised lebih efektif dalam memilih fitur yang relevan dengan target klasifikasi. Dengan memahami prinsip-prinsip preprocessing dan feature engineering, kita dapat membangun pipeline yang robust, meningkatkan performa model, dan menghasilkan insight yang lebih bernilai untuk pengambilan keputusan bisnis.
1. Data Cleaning
a. Identifikasi Data Kotor
Langkah awal dalam membangun model Machine Learning adalah memastikan bahwa data yang digunakan bersih dan berkualitas. Data yang bermasalah dapat menghambat analisis yang menyesatkan dan model yang tidak akurat. Beberapa jenis data kotor yang umum dijumpai antara lain: duplikasi, yaitu data yang tercatat lebih dari satu kali akibat kesalahan input; outlier, yakni nilai ekstrem yang menyimpang dari pola umum dan berpotensi mengganggu model meskipun tidak selalu salah; serta error input, seperti kesalahan ketik atau format data yang salah (contoh: usia -5 tahun atau tanggal lahir di masa depan yang tidak mungkin). Mengenali dan memahami berbagai bentuk ketidaksesuaian data ini menjadi fondasi penting sebelum melanjutkan ke tahap analisis atau pemodelan lanjutan.
b. Penanganan Missing Values
Nilai yang hilang atau missing values sering kali muncul akibat kesalahan teknis, ketelatan pengisian data, atau responden tidak bersedia menjawab pertanyaan. Untuk menanganinya, beberapa teknik umum dapat diterapkan. Mean/median imputation menggantikan nilai kosong dengan rata-rata atau median; tergantung distribusi data dan keberadaan outlier. Jika jumlah nilai hilang terlalu banyak, maka penghapusan baris/kolom (drop rows/columns) menjadi opsi yang lebih efisien. Selain itu, custom imputation juga sering digunakan untuk data kategorikal, seperti mengganti nilai kosong dengan "Unknown" atau label serupa. Pemilihan metode bergantung pada konteks, jenis data, serta tujuan analisis.
c. Contoh Kasus: Data Penjualan Online
Misalnya, dalam dataset transaksi toko online yang mencakup ID pelanggan, tanggal transaksi, jumlah barang, dan total pembelian, ditemukan beberapa kemungkinan kolom Jumlah_Barang kosong karena kesalahan sistem, sementara Total_Pembelian mencatat angka negatif yang jelas merupakan kesalahan input. Selain itu, terdapat entri transaksi yang terduplikasi dengan nomor invoice yang sama. Untuk membersihkan data, langkah-langkah yang diambil meliputi: menghapus duplikasi berdasarkan invoice, mengganti nilai kosong menggunakan median, serta membuang atau memperbaiki baris dengan nilai negatif untuk menjadikan dataset lebih konsisten dan siap digunakan untuk tahap transformasi lebih lanjut, seperti normalisasi atau rekayasa fitur.
2. Normalisasi & Standarisasi
Salah satu tahapan penting dalam data preprocessing adalah menyamakan skala antar fitur. Proses ini krusial karena banyak algoritma Machine Learning, seperti K-Nearest Neighbors (KNN) atau regresi linear, sangat sensitif terhadap perbedaan skala. Sebagai ilustrasi, jika sebuah dataset memiliki dua fitur: pendapatan (dalam jutaan rupiah) dan usia (dalam puluhan tahun) dan keduanya digunakan tanpa penyesuaian skala, maka fitur dengan rentang nilai lebih besar akan mendominasi proses perhitungan jarak atau bobot model. Untuk mengatasi masalah ini, dua teknik utama digunakan: normalisasi dan standarisasi.
• Normalisasi (Min-Max Scaling)
Normalisasi mengubah data agar berada pada rentang tertentu, biasanya 0 hingga 1. Rumusnya sederhana:
x' = (x - x_min) / (x_max - x_min)
Dengan cara ini, nilai terkecil dalam data akan menjadi 0, sedangkan nilai terbesar menjadi 1. Cocok digunakan ketika distribusi data tidak terlalu ekstrem dan kita ingin menjaga proporsi asli antar nilai. Namun, normalisasi sensitif terhadap outlier karena nilai ekstrem dapat mempersempit rentang data lainnya.
• Standarisasi (Z-Score Scaling)
Standarisasi mengubah data sehingga memiliki rata-rata (mean) = 0 dan standar deviasi = 1. Rumusnya adalah:
z = (x - μ) / σ
Teknik ini lebih kuat ketika data memiliki distribusi yang bervariasi atau terdapat outlier, karena fokusnya pada penyebaran data relatif terhadap rata-rata. Dengan kata lain, standarisasi meletakkan nilai data ke dalam skala tertentu, sedangkan normalisasi menyesuaikan data agar seimbang berdasarkan nilai rata-rata dan sebaran data. Sebagai contoh, pada algoritma KNN, jarak antar titik data dihitung menggunakan metrik seperti Euclidean Distance. Tanpa scaling, fitur dengan rentang nilai besar akan mendominasi perhitungan jarak. Demikian pula, dalam regresi linear, koefisien model bisa menjadi bias jika skala fitur tidak diseimbangkan terlebih dahulu.
3. Feature Selection & Feature Extraction
Kualitas model tidak hanya ditentukan oleh banyaknya data, tetapi juga oleh fitur yang digunakan. Feature selection dan feature extraction adalah dua strategi penting untuk meningkatkan efektivitas model. Ibarat bahan dalam resep, fitur yang tepat akan menghasilkan model yang akurat dan efisien, sementara fitur yang tidak relevan justru menambah noise dan menurunkan performa.
• Feature Selection (Pemilihan Fitur Relevan)
Proses ini bertujuan untuk menyaring fitur yang memiliki kontribusi signifikan terhadap output model, sambil menghapus fitur yang tidak bermanfaat ataupun redundan. Teknik yang digunakan meliputi filter methods seperti uji korelasi atau chi-square, wrapper methods seperti recursive feature elimination, dan embedded methods seperti Lasso Regression yang secara otomatis mengeliminasi koefisien fitur tidak penting. Dengan menyederhanakan jumlah fitur yang digunakan, model menjadi lebih cepat dilatih dan lebih stabil.
Contoh: Dari 20 fitur dalam dataset pelanggan, hanya 8 fitur yang memiliki korelasi kuat dengan variabel target "churn". Dengan menggunakan SelectKBest berdasarkan uji statistik F-test, kita dapat memilih 8 fitur terbaik tersebut dan membuang sisanya yang tidak relevan. Hasilnya, model menjadi lebih efisien tanpa kehilangan informasi penting.
• Feature Extraction (Transformasi Fitur)
Berbeda dari seleksi fitur, feature extraction mengubah fitur asli menjadi representasi baru yang lebih informatif. Salah satu teknik paling umum adalah Principal Component Analysis (PCA) yang mereduksi dimensi data dengan mencari kombinasi linear dari fitur yang ada. Misalnya, dari 50 fitur, PCA dapat menangkap informasi utama ke dalam 10 fitur saja. Transformasi ini tidak hanya menyederhanakan data, tetapi juga membantu mengurangi overfitting dan mempermudah interpretasi hasil model.
Contoh: Dataset dengan 100 fitur dapat direduksi menjadi 15 komponen utama menggunakan PCA, di mana 15 komponen tersebut mampu menjelaskan 95% varians data. Ini sangat berguna untuk visualisasi data berdimensi tinggi atau mempercepat training model seperti Neural Networks.
Catatan Penting: Feature extraction seperti PCA bersifat unsupervised (tidak mempertimbangkan target variable), sehingga dapat menghilangkan informasi diskriminatif yang penting untuk klasifikasi, terutama pada dataset imbalanced. Sebaliknya, feature selection seperti SelectKBest bersifat supervised dan lebih efektif dalam memilih fitur yang relevan dengan target.
4. Best Practices dalam Preprocessing
Preprocessing merupakan tahap krusial dalam pipeline Machine Learning, karena kualitas input akan sangat mempengaruhi keluaran model. Pepatah "garbage in, garbage out" menegaskan bahwa data yang buruk tidak dapat menghasilkan model yang baik, sebaik apapun algoritmanya.
Workflow Umum Preprocessing
Agar proses lebih efisien dan minim kesalahan, preprocessing idealnya mengikuti alur kerja berikut:
a) Data cleaning untuk menangani duplikasi, missing values, dan error
b) Data transformation seperti normalisasi dan standarisasi
c) Feature engineering melalui pemilihan dan pembentukan fitur
d) Encoding data kategorikal dengan label encoding atau one-hot encoding
e) Splitting data menjadi set latih dan uji; serta
f) Pembuatan pipeline preprocessing untuk menyatukan seluruh tahapan dalam satu alur otomatis
Tools Pendukung Preprocessing di Scikit-Learn
Library scikit-learn menyediakan berbagai alat yang memudahkan preprocessing, antara lain: SimpleImputer untuk imputasi nilai hilang, MinMaxScaler dan StandardScaler untuk transformasi skala, LabelEncoder dan OneHotEncoder untuk konversi data kategorikal, SelectKBest untuk seleksi fitur, serta PCA untuk ekstraksi fitur. Semua komponen ini dapat dirangkai dalam Pipeline, memungkinkan proses yang konsisten dan mudah di-reproduce, serta membantu mencegah data leakage di berbagai tahapan. Dengan demikian, preprocessing menjadi bagian yang tidak hanya penting, tetapi juga efisien dan terstruktur dalam membangun model Machine Learning yang handal.
Kesimpulan
Data Preprocessing dan Feature Engineering merupakan fondasi penting dalam membangun model Machine Learning yang akurat dan robust. Tanpa tahapan ini, model akan kesulitan belajar dari data yang kotor, tidak seimbang, atau memiliki skala yang tidak konsisten. Dengan menerapkan teknik-teknik seperti data cleaning, handling missing values, scaling, feature selection, dan feature extraction secara tepat, kita dapat meningkatkan performa model secara signifikan dan menghasilkan insight yang lebih bernilai untuk pengambilan keputusan bisnis.
Link Praktikum & Latihan
1. Praktikum
2. Latihan
Referensi
Sumber utama:
Link Flipbook: Flipbook
Atau anda bisa mengakses langsung dari blog pribadi penulis: Adi Muhamad Muhsidi
.png)
Posting Komentar untuk "Praktikum Modul 7: Data Preprocessing & Feature Engineering"