Evaluasi Model dengan Function sklearn.metrics
Dalam proses Machine Learning, setelah model selesai dilatih dan menghasilkan prediksi, kita perlu mengetahui seberapa baik performa model tersebut.
Sebelumnya kita telah mempelajari beberapa cara untuk melakukan evaluasi model:
- Menggunakan metode bawaan model seperti
.score(). - Menggunakan parameter
scoringpadacross_val_score(). - Menggunakan fungsi evaluasi dari modul
sklearn.metrics.
Pada materi ini kita akan fokus pada cara ketiga, yaitu menggunakan berbagai fungsi yang tersedia di:
sklearn.metrics
Pendekatan ini memberikan kontrol yang lebih jelas terhadap metrik yang ingin digunakan untuk mengevaluasi model.
Secara umum, proses evaluasi dapat digambarkan sebagai:
Data
│
├── X_test
│
└── y_test
│
▼
Model
│
▼
y_pred / y_preds
│
▼
┌──────────────────────┐
│ sklearn.metrics │
├──────────────────────┤
│ Accuracy │
│ Precision │
│ Recall │
│ F1 │
│ R² │
│ MAE │
│ MSE │
└──────────────────────┘
│
▼
Evaluation Score
Modul sklearn.metrics
Scikit-Learn menyediakan berbagai fungsi evaluasi melalui modul:
sklearn.metrics
Kita dapat mengimpor fungsi yang diperlukan secara langsung.
Contoh:
from sklearn.metrics import accuracy_score
Atau beberapa fungsi sekaligus:
from sklearn.metrics import (
accuracy_score,
precision_score,
recall_score,
f1_score
)
Untuk regresi:
from sklearn.metrics import (
r2_score,
mean_absolute_error,
mean_squared_error
)
Konsep Dasar y_true dan y_pred
Hampir semua fungsi evaluasi pada sklearn.metrics bekerja dengan membandingkan dua hal:
y_true
│
│ dibandingkan
▼
y_pred
y_true
y_true adalah nilai sebenarnya atau ground truth.
Biasanya berasal dari:
y_test
y_pred
y_pred adalah hasil prediksi model.
Biasanya diperoleh dari:
y_preds = model.predict(X_test)
Contohnya:
y_preds = clf.predict(X_test)
Kemudian:
accuracy_score(y_test, y_preds)
Artinya:
y_test
↓
Nilai sebenarnya
y_preds
↓
Nilai prediksi model
↓
accuracy_score()
↓
Evaluasi
Classification Metrics
Classification metrics digunakan untuk mengevaluasi model yang menghasilkan kelas atau label diskrit.
Contohnya:
0 = Tidak memiliki penyakit
1 = Memiliki penyakit
atau:
0 = Tidak spam
1 = Spam
Beberapa metrik klasifikasi yang umum digunakan:
| Fungsi | Metrik |
|---|---|
accuracy_score() | Accuracy |
precision_score() | Precision |
recall_score() | Recall |
f1_score() | F1-score |
accuracy_score()
Accuracy mengukur proporsi prediksi yang benar dibandingkan dengan seluruh data.
Rumus: