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 DatasetTujuanPersentase Umum
Training SetMelatih model agar mengenali pola60–80%
Validation SetMengatur parameter dan mencegah overfitting10–20%
Test SetMengukur performa akhir model10–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:

  1. Pilih algoritma sesuai jenis masalah (regresi, klasifikasi, dsb).
  2. Berikan data training ke model.
  3. Hitung error (loss function) antara hasil prediksi dan label sebenarnya.
  4. Optimisasi parameter (weights) menggunakan metode seperti Gradient Descent.
  5. 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).

MetrikPenjelasan
AccuracyPersentase prediksi yang benar
PrecisionKetepatan prediksi positif
RecallKemampuan menangkap semua kasus positif
F1-ScoreRata-rata harmonis Precision dan Recall
Confusion MatrixTabel 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.

MetrikPenjelasan
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² ScoreSeberapa 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.