Modelling: Memilih & Melatih Model
Setelah memahami problem definition, mengenali jenis data, melakukan preprocessing, serta membagi dataset menjadi training, validation, dan test set, tahap berikutnya adalah modelling.
Modelling adalah proses memilih algoritma Machine Learning yang sesuai, melatihnya menggunakan data, melakukan optimasi, kemudian membandingkan hasilnya dengan model lain.
Secara sederhana:
Data
↓
Memilih Model
↓
Training
↓
Evaluasi
↓
Tuning
↓
Perbandingan Model
↓
Model Terbaik
Modelling bukan hanya tentang memilih algoritma yang paling canggih. Tujuan utamanya adalah menemukan model yang cukup baik untuk menyelesaikan masalah dengan efisien dan dapat melakukan generalisasi terhadap data baru.
3 Tahapan Utama dalam Modelling
Secara umum, proses modelling dapat dibagi menjadi tiga tahapan utama:
- Choosing and Training a Model
- Tuning a Model
- Model Comparison
Ketiga tahapan tersebut biasanya dilakukan secara iteratif.
┌──────────────────────┐
│ Choosing a Model │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ Training the Model │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ Evaluate the Model │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ Tune the Model │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ Compare Models │
└──────────┬───────────┘
↓
Model Terbaik
Namun dalam praktiknya, proses tersebut tidak selalu berjalan satu kali dari atas ke bawah.
Sering kali prosesnya seperti:
Model A
↓
Training → Evaluation
↓
Tuning
↓
Evaluation
↓
Model B
↓
Training → Evaluation
↓
Comparison
↓
Model terbaik
Inilah salah satu alasan mengapa Machine Learning disebut sebagai proses yang iteratif.
Choosing and Training a Model
Tahap pertama adalah menentukan algoritma yang akan digunakan dan melatih algoritma tersebut menggunakan training data.
Misalnya kita memiliki dataset untuk memprediksi harga rumah.
Features (X)
├── Luas rumah
├── Jumlah kamar
├── Jumlah kamar mandi
└── Lokasi
Target (y)
└── Harga rumah
Model akan mencoba mempelajari hubungan antara X dan y.
Secara sederhana:
X
│
│ Luas
│ Kamar
│ Lokasi
│
▼
┌─────────────────┐
│ Machine │
│ Learning Model │
└────────┬────────┘
│
▼
Prediksi
│
▼
Harga Rumah
Tujuan training adalah membuat model menemukan pola yang dapat digunakan untuk menghasilkan prediksi pada data baru.
Input dan Output dalam Machine Learning
Dalam supervised learning, kita biasanya memiliki dua komponen utama:
- X → Features atau input
- y → Target atau label
Contohnya:
X = [
[100, 3, 2],
[150, 4, 2],
[200, 5, 3]
]
y = [
500000000,
750000000,
1000000000
]
Pada contoh tersebut:
X
├── Luas rumah
├── Jumlah kamar
└── Jumlah kamar mandi
y
└── Harga rumah
Model akan belajar hubungan antara kedua komponen tersebut.
Training Model
Training adalah proses memberikan data kepada algoritma agar algoritma dapat mempelajari pola yang terdapat di dalam data.
Contoh sederhana menggunakan LinearRegression:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
Pada kode tersebut:
model.fit(X_train, y_train)
berarti model dilatih menggunakan:
X_train→ data fitury_train→ target
Setelah training selesai, model dapat digunakan untuk melakukan prediksi.
predictions = model.predict(X_test)
Model Belajar dari Kesalahan
Model Machine Learning tidak sekadar menghafal data.
Selama training, model mencoba menemukan parameter yang menghasilkan prediksi sebaik mungkin berdasarkan objective atau loss function yang digunakan.
Secara sederhana:
Training Data
↓
Model membuat prediksi
↓
Prediksi dibandingkan dengan target
↓
Menghitung error
↓
Model memperbaiki parameter
↓
Prediksi berikutnya
↓
Berulang
Contohnya pada regresi:
Harga sebenarnya : 500 juta
Prediksi model : 450 juta
Error : 50 juta
Model kemudian berusaha menemukan parameter yang menghasilkan error yang lebih kecil.
Cara proses optimasi tersebut berlangsung bergantung pada algoritma yang digunakan.