Pemrosesan Data dalam Machine Learning

Salah satu prinsip penting dalam Machine Learning adalah:

“Garbage in, garbage out.”

Artinya, sebaik apapun algoritma yang digunakan, hasilnya akan buruk jika data yang digunakan tidak berkualitas. Karena itulah, pemrosesan data (data preprocessing) adalah salah satu tahap paling krusial dalam pipeline Machine Learning.

Apa itu Pemrosesan Data?

Pemrosesan data adalah proses membersihkan, menyiapkan, dan memformat data mentah agar bisa digunakan dalam pelatihan model machine learning. Tujuannya adalah memastikan:

  • Data tidak memiliki error atau noise yang mengganggu.
  • Format dan skala data seragam.
  • Informasi penting dipertahankan, dan data yang tidak relevan dibuang.

Tahap ini biasanya memakan 80% waktu dalam proyek ML, karena data dunia nyata sangat jarang rapi.

Tahapan Pemrosesan Data

Memahami dan Mengeksplorasi Data (EDA)

Sebelum memproses, kita perlu memahami struktur dan isi data.

Teknik:

  • Melihat bentuk dan ukuran dataset (df.shape)
  • Menampilkan beberapa baris pertama (df.head())
  • Mengetahui tipe data (df.dtypes)
  • Statistik deskriptif (df.describe())

Tujuan:

  • Mengetahui nilai ekstrim, missing values, dan distribusi data.

Menangani Missing Values

Data sering memiliki nilai kosong/null yang bisa merusak proses training.

Cara umum:

  • Hapus baris yang memiliki nilai kosong (df.dropna())
  • Isi dengan nilai tertentu, seperti:
    • Rata-rata: df.fillna(df.mean())
    • Median
    • Nilai tetap

Encoding Data Kategorikal

Model ML klasik tidak bisa langsung memahami data bertipe string/kategori.

Teknik umum:

  • Label Encoding: mengubah kategori jadi angka (0, 1, 2, …)
  • One-Hot Encoding: membuat kolom baru untuk setiap kategori

Contoh:

pd.get_dummies(df['warna'])

Feature Scaling / Normalisasi

Beberapa algoritma ML sensitif terhadap skala data (contoh: SVM, KNN).

Teknik umum:

  • Min-Max Scaling: skala nilai menjadi [0, 1]
  • Standardization (Z-score): skala dengan mean = 0 dan std = 1

Contoh:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

Feature Engineering

Membuat fitur baru yang bisa meningkatkan kinerja model.

Contoh:

  • Mengubah tanggal lahir menjadi usia
  • Menggabungkan kolom: “panjang” × “lebar” menjadi “luas”
  • Menerapkan log transform untuk mengurangi skewness

Feature Selection

Menghapus fitur yang tidak relevan atau redundan agar model lebih sederhana dan cepat.

Teknik umum:

  • Korelasi antar fitur
  • SelectKBest
  • Recursive Feature Elimination (RFE)

Splitting Dataset

Dataset harus dibagi menjadi beberapa bagian:

  • Training set: melatih model
  • Validation set (opsional): tuning parameter
  • Test set: mengevaluasi performa akhir

Contoh:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

Contoh Workflow Preprocessing Sederhana

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

# 1. Load data
df = pd.read_csv('data.csv')

# 2. Hapus missing values
df = df.dropna()

# 3. One-hot encoding kolom kategorikal
df = pd.get_dummies(df, columns=['kategori'])

# 4. Pisahkan fitur dan label
X = df.drop('label', axis=1)
y = df['label']

# 5. Scaling
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 6. Split data
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2)

Tips Praktis dalam Preprocessing

  • Selalu lakukan EDA (Exploratory Data Analysis) dulu sebelum melatih model.
  • Gunakan pipeline atau ColumnTransformer untuk preprocessing yang bisa direproduksi.
  • Simpan scaler/encoder yang dipakai agar bisa digunakan saat deployment.
  • Gunakan visualisasi (histogram, boxplot) untuk mendeteksi outlier atau distribusi yang tidak wajar.
  • Jangan gunakan informasi dari test set dalam preprocessing! Ini menyebabkan data leakage.

Penutup

Pemrosesan data adalah pondasi dari semua sistem Machine Learning yang baik. Tanpa data yang bersih, terstruktur, dan relevan, model terbaik pun tidak akan bekerja maksimal. Dengan memahami dan menerapkan teknik preprocessing dengan baik, kamu akan memiliki keunggulan besar dalam membangun model yang akurat dan andal.