Materi 06 Β· Core ML

Algoritma ML Klasik

Sebelum neural network meledak, dunia ML didominasi algoritma klasik yang masih dipakai sampai hari ini: Decision Tree, Random Forest, SVM, KNN, dan Naive Bayes. Pelajari kapan masing-masing menang.

⏱ 30 Menit🎯 IntermediateπŸ“š Module 6/15

1. Decision Tree

Pohon keputusan β€” di setiap node, split data berdasarkan feature & threshold yang memaksimalkan information gain (atau Gini impurity).

Information Gain IG(parent, split) = Entropy(parent) βˆ’ Ξ£ wα΅’ Γ— Entropy(child_i)
// Pilih split yang memaksimalkan IG
🌳

Decision Tree

Sangat interpretable. Bisa visualisasi sebagai if-else.

βœ“ Mudah dijelaskan stakeholder
βœ— Mudah overfitting
🌲

Random Forest

Banyak decision tree (bagging) β€” voting jadi prediksi.

βœ“ Robust, akurasi tinggi
βœ— Slower, less interpretable

2. Gradient Boosting (XGBoost, LightGBM)

Tree learner sequential β€” tiap tree mengoreksi error tree sebelumnya. State-of-the-art untuk tabular data sampai sekarang.

Tools Industri

XGBoost β€” original, dominan kompetisi Kaggle 2014-2018. LightGBM (Microsoft) β€” lebih cepat dengan histogram binning. CatBoost (Yandex) β€” handle categorical features otomatis. Kalau kamu kerja dengan data tabular di industri, salah satunya jadi default.

3. Support Vector Machine (SVM)

Cari hyperplane yang memisahkan kelas dengan margin maksimal. Powerful untuk dataset menengah dengan dimensi tinggi.

SVM Decision f(x) = wΒ·x + b
predict class 1 if f(x) β‰₯ 0, else class 0
// Goal: maximize margin antara hyperplane dan support vectors

4. K-Nearest Neighbors (KNN)

Algoritma "lazy learning" β€” tidak ada training fase. Saat predict: cari K data terdekat, voting (klasifikasi) atau average (regresi).

Euclidean Distance d(p, q) = √Σ(pα΅’ βˆ’ qα΅’)Β²
// Pilihan jarak: Euclidean, Manhattan, Cosine, dll
⚠️ Catatan

Curse of Dimensionality

KNN memburuk drastis di high-dimension space. Saat dimensi naik, "jarak" antar point jadi seragam β€” tidak ada yang benar-benar "dekat". Solusinya: dimensionality reduction (PCA) sebelum KNN, atau pilih algoritma lain.

5. Naive Bayes

Klasifikasi probabilistik berdasarkan Bayes' theorem dengan asumsi naif: feature saling independen. Sederhana tapi efektif untuk teks.

Naive Bayes P(class | features) ∝ P(class) Γ— Ξ  P(featureα΅’ | class)
// Pilih class dengan probability tertinggi

6. Cara Memilih Algoritma

SituasiAlgoritma Disarankan
Tabular data, butuh akurasi tinggiXGBoost / LightGBM
Butuh interpretabilityDecision Tree, Logistic Reg
Dataset kecil (<1000)SVM, Random Forest
Text classificationNaive Bayes (baseline) β†’ BERT
RecommendationKNN, Matrix Factorization
High-dimension, small dataSVM dengan kernel
Image / sequenceNeural Network (lihat materi 7)

7. Studi Kasus

🌟 Real World

Kompetisi Kaggle: XGBoost Era

Dari 2014-2018, hampir setiap kompetisi Kaggle dengan tabular data dimenangkan oleh tim yang pakai XGBoost (atau ensemble darinya). Bahkan deep learning sering kalah untuk tabular.

Pelajaran: tidak semua masalah butuh deep learning. Untuk credit scoring, churn prediction, demand forecasting β€” gradient boosting masih jadi king. Pilih tools sesuai problem, bukan sesuai hype.

πŸ“ Tugas

Algorithm Comparison

  1. Pilih dataset klasifikasi dari Kaggle (mis. Titanic, Wine Quality).
  2. Train 5 algoritma: Logistic Regression, Decision Tree, Random Forest, XGBoost, SVM.
  3. Bandingkan accuracy, training time, F1 score di test set.
  4. Plot feature importance dari Random Forest dan XGBoost β€” apakah konsisten?
  5. Tulis rekomendasi: algoritma mana yang akan kamu deploy & mengapa.

Rangkuman