Model Training & Evaluasi dalam Machine Learning

Setelah memahami konsep dasar Machine Learning seperti Supervised Learning, Unsupervised Learning, dan Reinforcement Learning, tahap penting berikutnya adalah melatih (training) model dan mengevaluasi (evaluation) performanya.
Tahap ini menjadi inti dari keseluruhan proses Machine Learning, karena menentukan seberapa baik model dapat mempelajari pola dari data dan seberapa akurat dalam membuat prediksi.
Apa Itu Model Training?
Model Training adalah proses di mana algoritma Machine Learning belajar dari data. Model mencoba menemukan hubungan atau pola antara input (fitur) dan output (label) untuk membuat prediksi pada data baru.
Selama proses training, model:
- Membaca data input (fitur)
- Menghasilkan prediksi
- Menghitung error (selisih antara prediksi dan label sebenarnya)
- Memperbaiki parameter agar error semakin kecil
Proses ini dilakukan berulang hingga model mencapai performa optimal.
Dataset: Training, Validation, dan Testing
Agar model tidak hanya menghafal data (overfitting), dataset biasanya dibagi menjadi beberapa bagian:
Jenis Dataset | Tujuan | Persentase Umum |
---|---|---|
Training Set | Melatih model agar mengenali pola | 60–80% |
Validation Set | Mengatur parameter dan mencegah overfitting | 10–20% |
Test Set | Mengukur performa akhir model | 10–20% |
Contoh pembagian data di Python:
from sklearn.model_selection import train_test_split
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5)
Proses Training Model
Langkah umum dalam training model Machine Learning:
- Pilih algoritma sesuai jenis masalah (regresi, klasifikasi, dsb).
- Berikan data training ke model.
- Hitung error (loss function) antara hasil prediksi dan label sebenarnya.
- Optimisasi parameter (weights) menggunakan metode seperti Gradient Descent.
- Ulangi (iterasi/epoch) hingga loss cukup kecil atau konvergen.
Contoh sederhana:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
Evaluasi Model
Evaluasi dilakukan untuk mengukur seberapa baik model bekerja pada data yang belum pernah dilihat (test set).
Metrik evaluasi berbeda tergantung jenis tugasnya.
Untuk Klasifikasi
Digunakan saat output berupa label (kategori).
Metrik | Penjelasan |
---|---|
Accuracy | Persentase prediksi yang benar |
Precision | Ketepatan prediksi positif |
Recall | Kemampuan menangkap semua kasus positif |
F1-Score | Rata-rata harmonis Precision dan Recall |
Confusion Matrix | Tabel untuk melihat prediksi benar/salah |
Contoh:
from sklearn.metrics import accuracy_score, classification_report
y_pred = model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
Untuk Regresi
Digunakan saat output berupa nilai kontinu.
Metrik | Penjelasan |
---|---|
MAE (Mean Absolute Error) | Rata-rata selisih absolut antara prediksi dan nilai asli |
MSE (Mean Squared Error) | Rata-rata kuadrat selisih prediksi dan nilai asli |
RMSE (Root MSE) | Akar dari MSE, mudah diinterpretasi |
R² Score | Seberapa besar variasi data bisa dijelaskan oleh model |
Contoh:
from sklearn.metrics import mean_absolute_error, r2_score
print("MAE:", mean_absolute_error(y_test, y_pred))
print("R²:", r2_score(y_test, y_pred))
Validasi Model
Untuk memastikan model tidak overfitting atau underfitting, dilakukan validasi, seperti:
- Hold-out Validation: Data dibagi menjadi train/test (metode dasar).
- K-Fold Cross Validation: Data dibagi menjadi k bagian dan model dilatih k kali, setiap kali dengan bagian berbeda sebagai test set.
- Stratified Sampling: Digunakan untuk menjaga proporsi kelas yang seimbang.
Contoh cross-validation:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)
print("Average accuracy:", scores.mean())
Tuning Hyperparameter
Setiap model memiliki parameter yang dapat disesuaikan, seperti:
- Jumlah pohon pada Random Forest
- Nilai k pada KNN
- Learning rate pada model neural network
Metode populer untuk tuning:
- Grid Search
- Random Search
- Bayesian Optimization
Contoh Grid Search:
from sklearn.model_selection import GridSearchCV
param_grid = {'n_estimators': [50, 100, 200]}
grid = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
grid.fit(X_train, y_train)
print("Best params:", grid.best_params_)
Evaluasi Akhir dan Interpretasi
Setelah model terbaik ditemukan, lakukan:
- Evaluasi performa di test set
- Analisis kesalahan (error analysis)
- Visualisasi hasil prediksi
- Interpretasi model (misalnya dengan SHAP atau feature importance)
Penutup
Proses training dan evaluasi model adalah inti dari pengembangan Machine Learning.
Model yang baik tidak hanya memiliki akurasi tinggi pada data training, tetapi juga mampu beradaptasi dengan data baru tanpa kehilangan performa.
Memahami cara membagi data, memilih metrik evaluasi yang tepat, serta melakukan validasi dan tuning parameter adalah kunci membangun model yang robust, efisien, dan dapat diandalkan.