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
- Rata-rata:
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.