Machine Learning Fundamental 3
Pertemuan 3: Data Preprocessing
π― Tujuan Pembelajaran
Setelah mengikuti pertemuan ini, mahasiswa mampu:
- Memahami pentingnya preprocessing dalam pipeline machine learning
- Menangani missing value secara tepat
- Melakukan encoding data kategorikal
- Melakukan feature scaling
- Melakukan train-test split dengan benar
- Memahami potensi data leakage
π§ 1. Mengapa Data Preprocessing Penting?
Dalam praktik nyata, data hampir tidak pernah bersih.
Masalah umum:
- Missing value
- Outlier
- Data kategorikal
- Skala fitur berbeda
- Data tidak seimbang
Jika preprocessing salah β model:
- Overfitting
- Underfitting
- Bias
- Tidak stabil
Pipeline umum ML:1
EDA β Preprocessing β Feature Engineering β Modeling β Evaluation
Preprocessing adalah fondasi sebelum modeling.
π 2. Menangani Missing Value
π Mengecek Missing Value
1 | import pandas as pd |
π Strategi Penanganan Missing Value
1οΈβ£ Menghapus Data
1 | df.dropna(inplace=True) |
Digunakan jika:
- Missing sangat sedikit
- Tidak memengaruhi distribusi data
2οΈβ£ Imputasi Mean / Median
1 | df["age"].fillna(df["age"].median(), inplace=True) |
Digunakan untuk data numerik.
- Mean β jika distribusi normal
- Median β jika ada outlier
3οΈβ£ Imputasi Modus (Kategorikal)
1 | df["embarked"].fillna(df["embarked"].mode()[0], inplace=True) |
π€ 3. Encoding Data Kategorikal
Machine learning hanya menerima angka.
π― Label Encoding
Digunakan untuk kategori biner.
1 | from sklearn.preprocessing import LabelEncoder |
Output:
- male β 1
- female β 0
π― One Hot Encoding
Digunakan untuk kategori > 2.
1 | df = pd.get_dummies(df, columns=["embarked"], drop_first=True) |
Kenapa drop_first=True? β Menghindari dummy variable trap (multicollinearity).
π 4. Feature Scaling
Beberapa algoritma sensitif terhadap skala fitur:
- KNN
- SVM
- Logistic Regression
- Neural Network
Tidak sensitif:
- Decision Tree
- Random Forest
π Standardization (Z-score)
1 | from sklearn.preprocessing import StandardScaler |
Formula:
z = \frac{x - \mu}{\sigma}
π Normalization (MinMaxScaler)
1 | from sklearn.preprocessing import MinMaxScaler |
Range: 0 β 1
βοΈ 5. Train-Test Split
Tujuan:
- Menghindari overfitting
- Mengukur performa model pada data baru
1 | from sklearn.model_selection import train_test_split |
Artinya:
- 80% training
- 20% testing
β οΈ 6. Data Leakage (Konsep Penting!)
Kesalahan umum:
β Scaling sebelum train-test split
β Menggunakan seluruh data untuk imputasi
Yang benar:
Split dulu β Fit hanya di data training β Transform training & test
Contoh benar:
1 | scaler = StandardScaler() |
π§ͺ Praktikum Lengkap (Ringkas)
1 | import pandas as pd |
π Tugas Mandiri
- Lakukan preprocessing lengkap pada dataset apapun di Kaggle.
- Jelaskan:
- Mengapa encoding diperlukan?
- Mengapa scaling diperlukan?
- Apa itu data leakage?
- Dokumentasikan dalam template: https://github.com/AzharRizkiZ/Template-DS-ML
- Upload ke GitHub.
π Target Kompetensi Setelah Pertemuan 3
Siswa mampu:
- Menyiapkan dataset real untuk modeling
- Menghindari kesalahan preprocessing
- Memahami pipeline machine learning dasar



