📑 Daftar Isi
Machine Learning Workflow
Machine Learning mempelajari bagaimana membuat prediksi yang akurat secara otomatis berdasarkan observasi masa lalu. Untuk membangun model ML yang efektif, kita mengikuti workflow sistematis yang terdiri dari beberapa tahap penting.
Tahapan Machine Learning Pipeline
Memuat dataset dari berbagai sumber seperti file CSV, database, API, atau format lainnya. Data adalah bahan baku utama dalam machine learning.
Membersihkan dan mempersiapkan data untuk training. Tahap ini meliputi:
- Handling missing values (menangani nilai yang hilang)
- Removing duplicates (menghapus duplikat)
- Data normalization/standardization
- Encoding categorical variables
- Handling outliers
Mengekstrak dan membuat fitur-fitur yang relevan dari data mentah. Feature engineering adalah proses membuat fitur baru yang merupakan kombinasi linear dari fitur sebelumnya.
Membagi dataset menjadi tiga bagian:
- Training Set - Untuk melatih model (biasanya 70-80%)
- Validation Set - Untuk tuning hyperparameter (10-15%)
- Test Set - Untuk evaluasi final (10-15%)
Memilih dan melatih model yang sesuai dengan jenis masalah (classification atau regression).
Mengevaluasi performa model menggunakan metrik yang tepat dan melakukan improvement jika diperlukan.
Regression vs Classification
Dalam supervised machine learning, terdapat dua jenis tugas utama:
📊 Regression
Target Variable: Continuous (Kontinu)
Output: Nilai numerik dalam rentang kontinu
Contoh:
- Prediksi harga rumah
- Prediksi suhu
- Prediksi pendapatan
- Estimasi umur
Algoritma: Linear Regression, Polynomial Regression, Ridge, Lasso
🏷️ Classification
Target Variable: Categorical (Kategorikal)
Output: Label atau kelas diskrit
Contoh:
- Spam detection (spam/not spam)
- Disease diagnosis (positif/negatif)
- Image classification (cat/dog/bird)
- Sentiment analysis (positive/negative/neutral)
Algoritma: Logistic Regression, SVM, Naive Bayes, Random Forest, Neural Networks
Ordinary Least Squares (OLS) Regression
OLS Regression adalah strategi optimasi yang membantu menemukan garis lurus yang sedekat mungkin dengan data points dalam model regresi linear dengan meminimalkan residual (perbedaan antara nilai observed dan predicted).
Model Linear Regression:
y = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ + ε
Dimana:
- y = Target variable (variabel dependen)
- β₀ = Intercept (konstanta)
- β₁, β₂, ..., βₚ = Koefisien untuk setiap prediktor
- x₁, x₂, ..., xₚ = Prediktor (variabel independen)
- ε = Error term
Logistic Regression
Mengapa Perlu Logistic Regression?
Linear regression sulit untuk mengassign nilai observasi ke kategori tertentu. Sebagai contoh, jika kita ingin memprediksi penerimaan perguruan tinggi menggunakan GRE, GPA, dan prestise perguruan tinggi:
⚠️ Masalah dengan Linear Regression untuk Classification:
- Output dapat bernilai di luar range [0, 1]
- Tidak cocok untuk binary classification (0/1)
- Sensitif terhadap outliers
- Tidak menghasilkan probabilitas yang valid
Konsep Dasar Logistic Regression
Logistic regression adalah modifikasi dari regression untuk target variable kategorikal/class. Alih-alih menyelesaikan mean dari y, logistic regression menyelesaikan probabilitas class membership dari y.
1. Odds Ratio
Odds Ratio adalah ukuran berapa kali lebih mungkin suatu kejadian terjadi dibandingkan dengan kasus sebaliknya.
Odds Ratio = p / (1 - p)
dimana p adalah probabilitas
Contoh:
Jika probabilitas diterima di perguruan tinggi prestise tinggi adalah 0.8 (80%), maka:
Odds = 0.8 / (1 - 0.8) = 0.8 / 0.2 = 4
Artinya: 4 kali lebih mungkin diterima daripada ditolak.
2. Logit Link Function
Kombinasi dari konversi probabilitas ke odds ratio dan mengambil logaritma natural disebut logit link function:
logit(p) = ln(p / (1-p)) = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ
Kenapa perlu logit?
- Probabilitas p: range [0, 1]
- Odds ratio: range [0, ∞]
- Log(odds): range [-∞, ∞] ✓ (sesuai untuk regression)
3. Sigmoid Function
Untuk mendapatkan probabilitas dari logit, kita gunakan inverse logit (sigmoid function):
p = 1 / (1 + e^(-z))
dimana z = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ
Karakteristik Sigmoid Function:
- Output selalu antara 0 dan 1
- Berbentuk S-curve
- Smooth dan differentiable
- Cocok untuk binary classification
Probability Threshold
Setelah mendapatkan probabilitas, bagaimana kita mengklasifikasikan data?
Decision Rule:
- Jika p ≥ 0.5 → Prediksi Class 1 (Positive)
- Jika p < 0.5 → Prediksi Class 0 (Negative)
Catatan: Threshold 0.5 dapat disesuaikan tergantung pada kebutuhan (misalnya 0.3 atau 0.7).
Cost Function dalam Logistic Regression
Seperti OLS yang menggunakan RSS (Residual Sum of Squares), logistic regression menggunakan Log Loss atau Binary Cross-Entropy:
J(θ) = -1/m Σ [y·log(h(x)) + (1-y)·log(1-h(x))]
Penjelasan Cost Function:
- m = Jumlah training examples
- y = Label aktual (0 atau 1)
- h(x) = Prediksi probabilitas
- Cost tinggi ketika prediksi salah
- Cost rendah ketika prediksi benar
Model Performance dan Evaluation
Generalization Ability
Kemampuan model untuk generalize ke data yang belum pernah dilihat adalah metrik paling penting dalam machine learning.
Langkah Evaluasi Model:
- Split data menjadi "training", "validation", dan "test" sets
- Gunakan hasil dari "training" set untuk memprediksi "test" set
- Bandingkan "Predicted Y" dengan "Actual Y"
Metrics untuk Regression
| Metric | Formula | Interpretasi |
|---|---|---|
| R² | 1 - (SS_res / SS_tot) | Proporsi variance yang dijelaskan (0-1, lebih tinggi lebih baik) |
| MSE | Σ(y - ŷ)² / n | Mean Squared Error (lebih rendah lebih baik) |
| RMSE | √MSE | Root Mean Squared Error (dalam unit yang sama dengan y) |
| MAE | Σ|y - ŷ| / n | Mean Absolute Error (robust terhadap outliers) |
Confusion Matrix
Untuk classification, Confusion Matrix adalah tools fundamental untuk evaluasi model.
Komponen Confusion Matrix:
| Kategori | Deskripsi |
|---|---|
| True Positive (TP) | Model memprediksi Positive, dan aktual juga Positive ✓ |
| True Negative (TN) | Model memprediksi Negative, dan aktual juga Negative ✓ |
| False Positive (FP) | Model memprediksi Positive, tetapi aktual Negative ✗ (Type I Error) |
| False Negative (FN) | Model memprediksi Negative, tetapi aktual Positive ✗ (Type II Error) |
Metrics dari Confusion Matrix
Accuracy
(TP + TN) / (TP + TN + FP + FN)
Seberapa sering classifier benar secara keseluruhan?
Precision
TP / (TP + FP)
Ketika model prediksi "yes", seberapa sering benar?
Recall
TP / (TP + FN)
Seberapa sering model memprediksi "yes" ketika aktualnya "yes"?
F1-Score
2 × (Precision × Recall) / (Precision + Recall)
Harmonic mean dari Precision dan Recall
📊 Contoh: Medical Diagnosis
Bayangkan Anda ke dokter dan mendapat diagnosis yang salah:
- False Positive: Didiagnosis sakit padahal sehat (unnecessary treatment)
- False Negative: Didiagnosis sehat padahal sakit (berbahaya!)
Dalam kasus medis, False Negative biasanya lebih berbahaya karena pasien tidak mendapat treatment yang diperlukan.
Support Vector Machine (SVM)
Support Vector Machine (SVM) adalah algoritma supervised machine learning yang digunakan untuk classification dan regression. SVM bekerja dengan menemukan hyperplane terbaik yang memisahkan kelas-kelas dalam data.
Konsep Dasar SVM
Tujuan SVM: Menemukan hyperplane yang memaksimalkan margin antara kelas-kelas yang berbeda.
- Hyperplane: Decision boundary yang memisahkan kelas
- Support Vectors: Data points terdekat ke hyperplane
- Margin: Jarak antara hyperplane dan support vectors
- Maximum Margin: SVM mencari hyperplane dengan margin terbesar
Cara Kerja SVM:
- Algoritma membuat multiple hyperplanes
- Memilih hyperplane yang memaksimalkan margin
- Data points pada margin disebut support vectors
- Hyperplane optimal memberikan best separation
SVM Kernel
Kernel adalah fungsi yang mengambil data sebagai input dan mentransformasikannya ke bentuk yang diinginkan untuk memudahkan classification.
Linear Kernel
Untuk data yang linearly separable
K(x, y) = xTy
Polynomial Kernel
Untuk data dengan hubungan polynomial
K(x, y) = (xTy + c)d
RBF Kernel
Most popular, untuk data non-linear
K(x, y) = exp(-γ||x-y||²)
Sigmoid Kernel
Mirip dengan neural network
K(x, y) = tanh(αxTy + c)
Aplikasi SVM
✅ Keunggulan SVM:
- Efektif untuk high-dimensional spaces
- Bekerja baik dengan clear margin of separation
- Memory efficient (hanya menggunakan support vectors)
- Versatile (berbagai kernel functions)
📱 Use Cases:
- Text Classification: Spam detection, sentiment analysis
- Image Recognition: Face detection, handwriting recognition
- Bioinformatics: Protein classification
- Cybersecurity: Intrusion detection, malware classification
Naive Bayes
Naive Bayes adalah algoritma sederhana yang mengklasifikasikan teks berdasarkan probabilitas terjadinya event. Algoritma ini didasarkan pada Bayes Theorem.
Bayes Theorem
P(A|B) = [P(B|A) × P(A)] / P(B)
Dimana:
- P(A|B) = Posterior probability
- P(B|A) = Likelihood
- P(A) = Prior probability
- P(B) = Marginal probability
Mengapa "Naive"?
Asumsi "Naive": Semua fitur bersifat independent (tidak saling mempengaruhi) satu sama lain.
Meskipun asumsi ini sering tidak benar dalam praktik, Naive Bayes tetap bekerja dengan baik untuk banyak aplikasi, terutama text classification.
Jenis-Jenis Naive Bayes
Gaussian Naive Bayes
Untuk continuous data yang mengikuti distribusi normal
Use case: Klasifikasi iris flowers, salary prediction
Multinomial Naive Bayes
Untuk discrete counts (word frequencies)
Use case: Text classification, document categorization
Bernoulli Naive Bayes
Untuk binary/boolean features
Use case: Document classification (word presence/absence)
Aplikasi Naive Bayes
✅ Keunggulan Naive Bayes:
- Sangat cepat untuk training dan prediction
- Bekerja baik dengan high-dimensional data
- Memerlukan sedikit training data
- Probabilistic predictions
🎯 Best Use Cases:
- Text classification (spam detection, sentiment analysis)
- Real-time prediction
- Multi-class prediction
- Recommendation systems
Random Forest
Random Forest adalah seperti tim pengambilan keputusan dalam machine learning. Algoritma ini menggabungkan opini dari banyak "trees" (model individual) untuk membuat prediksi yang lebih baik.
Konsep Ensemble Learning
Random Forest menggabungkan output dari multiple decision trees untuk mencapai satu hasil akhir. Ini adalah contoh dari ensemble learning - "wisdom of crowds" dalam machine learning.
Cara Kerja Random Forest
Langkah-Langkah Random Forest:
- Bootstrap Sampling: Buat multiple random subsets dari training data
- Build Decision Trees: Untuk setiap subset, bangun decision tree
- Make Predictions:
- Classification: Voting (majority class)
- Regression: Averaging predictions
Keunggulan Random Forest
🎯 Versatility
Dapat menangani continuous variables (regression) dan categorical variables (classification)
🛡️ Overfitting Prevention
Lebih resistant terhadap overfitting dibanding single decision tree
📊 Feature Importance
Dapat mengukur relative importance dari setiap feature
🔄 Handles Missing Data
Dapat bekerja dengan data yang memiliki missing values
Aplikasi Random Forest
📱 Use Cases:
- Finance: Credit risk assessment, fraud detection
- Healthcare: Disease diagnosis, patient risk stratification
- E-commerce: Customer churn prediction
- Marketing: Customer segmentation
- Cybersecurity: Intrusion detection, malware classification
Neural Network
Neural Network adalah model machine learning yang terinspirasi dari cara kerja otak manusia. Neural network terdiri dari layer-layer neuron yang saling terhubung dan dapat mempelajari pola kompleks dari data.
Arsitektur Neural Network
Komponen Utama:
- Input Layer: Menerima data input (features)
- Hidden Layers: Layer-layer tersembunyi yang melakukan transformasi
- Output Layer: Menghasilkan prediksi final
- Weights: Parameter yang dipelajari selama training
- Biases: Offset untuk setiap neuron
- Activation Functions: Fungsi non-linear pada setiap neuron
MLP (Multi-Layer Perceptron)
MLP adalah jenis neural network yang paling basic dimana:
- Setiap neuron di satu layer terhubung ke semua neuron di layer berikutnya (fully connected)
- Informasi mengalir satu arah: input → hidden → output (feedforward)
- Dapat memiliki multiple hidden layers (deep learning)
Feature Extraction/Engineering
Neural network melakukan feature extraction secara otomatis dengan membuat fitur-fitur baru yang merupakan kombinasi linear dari fitur sebelumnya.
z = W·x + b
dimana: W = weight matrix, x = input vector, b = bias vector
Vocabulary dalam Neural Network
Neuron/Unit
Elemen komputasi dasar yang menerima input, melakukan transformasi, dan menghasilkan output
Weights
Parameter yang menghubungkan neurons. Dicari oleh optimizer untuk meminimalkan loss
Activation Function
Fungsi non-linear yang diterapkan pada output neuron
Epoch
Satu iterasi lengkap melalui seluruh training dataset
Jenis-Jenis Task
📚 Terminologi:
- Binary Classification: 2 kelas (0/1, yes/no)
- Multiclass Classification: > 2 kelas (cat/dog/bird)
- Multilabel Classification: Multiple labels per sample
- Multitask Learning: Prediksi multiple targets sekaligus
Design Considerations
❓ Pertanyaan Penting:
- Berapa banyak hidden layers?
- 1-2 layers: Simple problems
- 3-10 layers: Medium complexity
- 10+ layers: Very deep learning
- Berapa banyak neurons?
- Rule of thumb: 2 × n_features
- Common: 16, 32, 64, 128, 256
- Activation function apa?
- Hidden: ReLU, LeakyReLU, tanh
- Output: Tergantung task
Activation Functions
Activation Function adalah fungsi yang diterapkan pada output neuron untuk memperkenalkan non-linearity ke dalam network.
Mengapa Harus Non-Linear?
⚠️ PENTING: Hidden Layer HARUS Non-Linear!
Alasan: Jika menggunakan fungsi linear, network akan collapse menjadi persamaan linear sederhana. Fungsi linear tidak menambahkan kemampuan untuk mempelajari pola kompleks!
Jenis-Jenis Activation Functions
1. Sigmoid
σ(x) = 1 / (1 + e-x)
Range: (0, 1)
Use Case: Binary classification (output layer)
2. Tanh
tanh(x) = (ex - e-x) / (ex + e-x)
Range: (-1, 1)
Use Case: Hidden layers (jarang digunakan)
3. ReLU ⭐
ReLU(x) = max(0, x)
Range: [0, ∞)
Use Case: Default choice untuk hidden layers!
4. Leaky ReLU
f(x) = max(0.01x, x)
Range: (-∞, ∞)
Use Case: Alternatif ReLU
5. Softmax
softmax(xi) = exi / Σexj
Range: (0, 1), sum = 1
Use Case: Multiclass classification
6. Linear
f(x) = x
Range: (-∞, ∞)
Use Case: Regression (output only!)
Pemilihan Activation Function
| Layer | Task | Activation |
|---|---|---|
| Hidden Layers | General | ReLU ⭐ |
| Output | Binary Classification | Sigmoid |
| Output | Multiclass | Softmax |
| Output | Regression | Linear |
💡 Best Practices:
- Start with ReLU untuk hidden layers
- Try Leaky ReLU jika ada dying neurons
- Match output activation dengan task
- Experiment - tidak ada one-size-fits-all
Kesimpulan
Machine Learning telah merevolusi cara kita memecahkan masalah kompleks, dari cybersecurity hingga medical diagnosis. Memahami berbagai model dan kapan menggunakannya adalah kunci untuk menjadi praktisi ML yang efektif.
🔑 Ringkasan Model Selection:
| Model | Best For | Key Features |
|---|---|---|
| Logistic Regression | Binary classification, baseline | Fast, interpretable, probabilistic |
| SVM | High-dimensional data | Effective, kernel tricks |
| Naive Bayes | Text classification | Very fast, small data |
| Random Forest | Tabular data | Robust, ensemble |
| Neural Network | Complex patterns | Powerful, automatic features |
⚡ Quick Tips:
- Always split data properly (train/val/test)
- Preprocess data consistently
- Start simple, then increase complexity
- Monitor for overfitting/underfitting
- Use cross-validation
- Document your experiments
Machine Learning adalah field yang terus berkembang. Yang terpenting adalah memahami fundamentals, practice secara konsisten, dan selalu curious untuk belajar hal baru!

Komentar
Posting Komentar