📊 Data, Statistik & Preprocessing

Feature, label, statistik deskriptif, korelasi, dan kenapa data harus diskalakan.

📌 1. Struktur Data ML: Feature & Label

Setiap data ML berbentuk tabel: baris = sampel, kolom = feature (input), dan satu kolom label (yang mau diprediksi).

Contoh: prediksi apakah pelanggan akan resign (churn) sampel │ umur │ gaji │ lama_kerja │ churn? ← label ───────┼──────┼──────┼────────────┼──────── 1 │ 25 │ 5 │ 2 │ 0 2 │ 41 │ 12 │ 8 │ 1 3 │ 33 │ 7 │ 5 │ 0 ... │ ... │ ... │ ... │ ... X = [[25, 5, 2], [41, 12, 8], ...] ← matriks fitur y = [0, 1, 0, ...] ← vektor label Klasifikasi : label = kategori (0/1, kucing/anjing) Regresi : label = angka kontinu (harga, suhu) Clustering : TIDAK ADA label

Di simulator, data diwakili X (list of list) dan y (list). make_classification(), make_blobs(), dll. menghasilkan pasangan (X, y) ini.

📌 2. Statistik Deskriptif & Korelasi

UkuranFungsiCatatan
meanRata-rataSensitif terhadap outlier
medianTengah dataTahan outlier — bandingkan dengan mean!
stdSebaran dataBesar = data menyebar
min/maxRangeDeteksi nilai mustahil (usia 200?)
correlationHubungan linear 2 fitur, [-1..1]|r|>0.7 = kuat; r=0 bukan berarti "tidak berhubungan" (bisa non-linear)

📌 3. Contoh: Eksplorasi Data (EDA)

Langkah pertama sebelum modeling: kenali datamu. Statistik + grafik + korelasi.

Output:

📌 4. Normalisasi vs Standardisasi

Banyak algoritma (KNN, SVM, neural network, gradient descent) sensitif terhadap skala fitur. Jika satu fitur bernilai 0–1000 dan fitur lain 0–1, fitur besar akan "mendominasi" perhitungan jarak.

Min-Max Normalization Z-Score Standardization ───────────────────── ───────────────────────── x' = (x - min) / (max - min) x' = (x - mean) / std Hasil: semua di [0, 1] Hasil: mean 0, std 1 Cocok: neural net, data Cocok: data dengan outlier, dengan range jelas algoritma berbasis jarak/GD Risiko: outlier merempress (mean/std ikut terdorong) skala keseluruhan

📌 5. Contoh: Dampak Skala pada Jarak

Bukti nyata kenapa scaling penting — lihat bagaimana fitur "gaji" mendominasi jarak:

Output:
⚠️ Aturan emas: scaling dihitung dari data TRAIN saja, lalu parameter (min/max atau mean/std) yang sama dipakai ke data test. Menghitung dari data test = data leakage (model "curi" info test).

🧠 Latihan

  1. Di EDA, hitung juga correlation(f1, f2) per kelas (kelas 0 dan kelas 1 terpisah). Apa bedanya?
  2. Buat data dengan outlier: xs = [1, 2, 2, 3, 3, 3, 4, 100]. Bandingkan mean vs median, lalu bandingkan hasil normalize() vs standardize(). Mana yang lebih "aman"?
  3. Jelaskan kenapa correlation = 0 tidak berarti dua variabel tidak berhubungan. (Petunjuk: coba data y = x² untuk x simetris di sekitar 0.)
  4. Kapan scaling TIDAK perlu? (Petunjuk: pikirkan algoritma yang berbasis aturan if x < threshold.)