Bab 6: Data Preprocessing

Menyiapkan data mentah menjadi data berkualitas tinggi untuk pelatihan model AI

1. Mengapa Preprocessing Penting?

"Garbage in, garbage out" — kualitas data menentukan kualitas model. Tidak peduli seberapa canggih algoritma Anda, jika datanya buruk, hasilnya pasti mengecewakan.

Preprocessing mencakup: penanganan missing values, feature scaling, encoding kategorikal, dan pembagian data train/test. Klik tombol di bawah untuk melihat transformasi data kotor menjadi data bersih!
Klik "Lihat Transformasi Data" untuk melihat animasi

2. Handling Missing Values

Beberapa data seringkali hilang atau kosong (NaN). Ini bisa terjadi karena kesalahan input, sensor rusak, atau responden yang tidak mengisi survei.

Strategi Penanganan:

  1. Hapus baris — jika jumlah data yang hilang sedikit
  2. Isi dengan Mean — rata-rata dari kolom tersebut
  3. Isi dengan Median — nilai tengah dari kolom tersebut (lebih robust terhadap outlier)
Tabel di bawah menunjukkan dataset dengan beberapa nilai hilang (ditandai ?). Pilih strategi untuk menangani missing values dan lihat efeknya pada scatter plot.
#UsiaGaji (Juta)Skor
Pilih strategi untuk menangani missing values

3. Feature Scaling / Normalization

Ketika fitur memiliki skala yang sangat berbeda (misal: usia 20-60, gaji 3.000.000-50.000.000), gradient descent akan konvergen sangat lambat karena kontur loss function berbentuk elips memanjang.

Min-Max Normalization

x' = (x - min) / (max - min) → range [0, 1]

Standardization (Z-score)

x' = (x - μ) / σ → mean = 0, std = 1
Perhatikan bagaimana data berubah setelah scaling. Kontur loss function berubah dari elips memanjang (lambat) menjadi lingkaran (cepat konvergen). Ini menjelaskan mengapa feature scaling sangat penting untuk gradient descent!

Scatter Plot Data

Kontur Gradient Descent

Klik tombol untuk melihat efek feature scaling

4. Encoding Kategorikal

Algoritma ML membutuhkan input berupa angka, namun beberapa fitur berupa kategori (misal: warna, kota, jenis kelamin). Kita perlu mengubahnya menjadi representasi numerik.

Label Encoding

Merah = 0, Biru = 1, Hijau = 2 — Masalah: mengimplikasikan urutan (Hijau > Biru > Merah)

One-Hot Encoding

Merah = [1,0,0], Biru = [0,1,0], Hijau = [0,0,1] — Tidak ada urutan tersirat!

Lihat animasi di bawah untuk memahami bagaimana fitur kategorikal diubah menjadi representasi numerik dengan One-Hot Encoding.
Klik "Mulai Animasi Encoding" untuk melihat transformasi

5. Train/Test Split

Mengapa perlu membagi data? Untuk menghindari overfitting dan mengevaluasi model pada data yang belum pernah dilihat (unseen data).

Geser slider untuk mengatur rasio pembagian data. Perhatikan bagaimana titik-titik data berubah warna: Biru = Training, Oranye = Testing.
Geser slider dan klik "Animasi Split"

6. Pipeline Preprocessing Lengkap

Berikut adalah urutan lengkap preprocessing data sebelum model training:

  1. Load raw data — muat data mentah dari sumber
  2. Handle missing values — tangani data yang hilang
  3. Encode categorical features — ubah kategori menjadi angka
  4. Scale/normalize numerical features — samakan skala fitur
  5. Split into train/test — bagi data untuk training dan evaluasi
  6. Ready for model training! — data siap digunakan
Klik "Jalankan Pipeline" untuk melihat alur preprocessing

7. Hubungan dengan Chapter Selanjutnya

Preprocessing adalah fondasi yang wajib dilakukan sebelum:

Selanjutnya: Neural Network! Di chapter berikutnya, kita akan menggabungkan semua konsep yang sudah dipelajari (regresi, gradient descent, dan preprocessing) untuk membangun jaringan saraf tiruan.

Referensi

  1. S. García, J. Luengo, F. Herrera, Data Preprocessing in Data Mining. Springer, 2015.
  2. A. Zheng, A. Casari, Feature Engineering for Machine Learning. O'Reilly, 2018.
  3. I. Goodfellow et al., Deep Learning. MIT Press, 2016, Ch. 5.
  4. S. Raschka, V. Mirjalili, Python Machine Learning. Packt, 2019, Ch. 4.
← Gradient Descent Neural Network →