Belajar AI - Feature Engineering & Model Selection
Episode 10 of 24

Belajar AI - Feature Engineering & Model Selection

Mempelajari cara menyiapkan fitur agar model bisa belajar dengan baik: encoding variabel kategorikal, scaling, feature selection, dan imputation; serta memilih model dengan benar antara baseline dan model lanjutan, menimbang interpretability, accuracy, dan biaya operasional.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 9 kalian membangun pipeline data yang benar dan bebas leakage, episode ini naik satu lapisan: menyiapkan fitur agar model benar-benar bisa belajar, dan memilih model yang tepat untuk masalah yang dihadapi. Dua keterampilan inilah yang membedakan engineer AI senior — yang modelnya jadi di produksi — dari pemula yang hanya mencoba-coba algoritma.

Mengapa episode ini penting? Karena "model yang tepat" bukan selalu model paling canggih. Model yang sedikit lebih buruk tapi murah, cepat, dan bisa dijelaskan sering menjadi pilihan yang lebih bijak di dunia nyata. Episode ini mengajarkan kerangka berpikir untuk membuat keputusan itu.

Feature Engineering

Feature engineering adalah seni mengubah data mentah menjadi representasi yang bisa dipelajari model dengan baik. Model tidak memahami "merah", "laki-laki", atau "2026-08-16" — semua harus diterjemahkan ke angka.

Encoding Variabel Kategorikal

TeknikCara KerjaKapan Dipakai
Label encodingSetiap kategori → satu angka (0, 1, 2, ...)Kategori ordinal (rendah/sedang/tinggi)
One-hot encodingSetiap kategori → kolom biner 0/1Kategori nominal tanpa urutan
One-hot encoding
import pandas as pd
 
df = pd.DataFrame({"city": ["jakarta", "bandung", "jakarta"]})
encoded = pd.get_dummies(df, columns=["city"], prefix="city")
print(encoded)

Perangkap one-hot: terlalu banyak kategori → terlalu banyak kolom (curse of dimensionality). Untuk kardinalitas tinggi, pertimbangkan encoding berbasis target atau embedding.

Scaling Fitur

Model berbasis jarak/gradient (regresi logistik, SVM, neural network) sangat sensitif terhadap skala fitur — fitur dengan rentang besar akan mendominasi. Standardization (mean 0, std 1) adalah pilihan paling umum:

StandardScaler dalam pipeline
from sklearn.preprocessing import StandardScaler
 
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_train)

Catatan: model berbasis tree (random forest, gradient boosting, XGBoost) tidak butuh scaling — keputusan splitnya berbasis threshold, bukan jarak.

Imputation: Mengisi Nilai Kosong

Strategi, dari yang paling sederhana: hapus baris → isi dengan median/modus/mean → isi dengan nilai paling sering → prediksi dari kolom lain. Imputasi dengan median lebih tahan terhadap outlier daripada mean.

Imputasi dengan SimpleImputer
from sklearn.impute import SimpleImputer
 
imputer = SimpleImputer(strategy="median")
X_train = imputer.fit_transform(X_train)
X_test = imputer.transform(X_test)

Feature Selection: Semakin Sedikit Semakin Baik

Tidak semua fitur berguna. Fitur yang tidak relevan atau redundan menambah noise, biaya komputasi, dan risiko overfitting. Tiga pendekatan:

  • Filter: ukur korelasi/statistik tiap fitur terhadap label, simpan yang paling relevan.
  • Embedded: model memberikan skor kepentingan (misal feature_importances_ di random forest).
  • Wrapper: coba subset fitur, ukur performa, iterasi.
Skor kepentingan fitur
from sklearn.ensemble import RandomForestClassifier
 
model = RandomForestClassifier()
model.fit(X_train, y_train)
importance = pd.Series(model.feature_importances_, index=X_train.columns)
print(importance.sort_values(ascending=False))

Aturan praktis: mulai dengan sedikit fitur yang bermakna. Model sederhana dengan fitur tepat biasanya mengungguli model kompleks dengan fitur berantakan.

Model Selection

Baseline Dulu, Baru Lanjutan

Pola paling umum kegagalan proyek ML: langsung memakai model kompleks tanpa baseline. Baseline adalah tebakan sederhana untuk mengukur "apakah model kita lebih baik dari tebakan naif?"

LevelContohTujuan
NaifPrediksi kelas mayoritas, medianBatas bawah yang realistis
Baseline MLLogistic regression, decision treeReferensi performa
LanjutanGradient boosting, deep learningMencari performa maksimal

Jika gradient boosting tidak jauh lebih baik dari logistic regression, pertanyaannya bukan "algoritma apa lagi?" melainkan "fitur dan data apa yang kurang?" — arah perbaikan yang jauh lebih berdampak.

Trade-off Utama dalam Memilih Model

100%
Trade-offContoh Nyata
Interpretability vs accuracyKredit banking: model yang bisa dijelaskan (logistic regression) wajib untuk keputusan kredit yang diaudit — meski kalah akurat dari XGBoost
Cost vs accuracyLLM kecil vs besar: tugas sederhana cukup pakai model kecil yang murah
Latency vs accuracyRekomendasi real-time butuh model cepat; analisis offline boleh lambat

Interpretability sering diabaikan, padahal di industri berregulasi (finansial, kesehatan, asuransi) ia bisa menjadi syarat hukum. Jika stakeholder harus menjelaskan mengapa sistem menolak permohonan, "karena neural network bilang begitu" tidak diterima.

Tip

Tuliskan kriteria sukses sebelum memilih model: akurasi minimum yang bisa diterima, budget latency, dan apakah hasil harus bisa dijelaskan. Kriteria ini menentukan pilihan model lebih kuat daripada tren "model terbaru".

Common Pitfalls

  • One-hot untuk kategori dengan ribuan nilai: ledakan kolom; gunakan encoding lain.
  • Melupakan scaling di pipeline: memakai scaler.transform(X_test) tanpa fit — atau fit_transform pada test.
  • Fitur bocor: fitur yang sebenarnya baru diketahui setelah kejadian (misal "apakah churn" dipakai memprediksi churn).
  • Mengejar akurasi tanpa baseline: tidak tahu apakah progress nyata atau sekadar noise.
  • Mengabaikan interpretability di industri berregulasi: keputusan bisa diblokir audit.

Penutup

Inti yang harus dibawa pulang:

  • Feature engineering: encoding kategorikal (label vs one-hot), scaling (khusus model berbasis jarak), imputation (median), dan feature selection.
  • Baseline dulu: model naif → ML klasik → lanjutan; fokus pada fitur & data bila model lanjutan tidak jauh lebih baik.
  • Trade-off utama: interpretability, accuracy, cost, latency — tuliskan kriteria sukses sebelum memilih model.
  • Model berbasis tree tidak butuh scaling; model berbasis jarak/gradient sangat sensitif.

Di episode 11 selanjutnya kita masuk ke dapur training: Model Training & Experiment Tracking — hyperparameter tuning, cross-validation, early stopping, dan pengelolaan eksperimen dengan Weights & Biases dan MLflow agar setiap training bisa direproduksi. Sampai jumpa di episode 11!