Seberapa baik model Anda?

Supervised Learning dengan scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Metrik klasifikasi

  • Mengukur kinerja model dengan akurasi:

    • Proporsi sampel yang diklasifikasikan benar

    • Tidak selalu metrik yang berguna

Supervised Learning dengan scikit-learn

Ketimpangan kelas

  • Klasifikasi untuk memprediksi transaksi bank yang curang

    • 99% transaksi sah; 1% penipuan
  • Bisa buat model yang memprediksi TIDAK ADA transaksi yang curang

    • Akurasi 99%!

    • Namun buruk dalam memprediksi transaksi curang

    • Gagal mencapai tujuan awal

  • Ketimpangan kelas: Frekuensi kelas tidak seimbang

  • Perlu cara lain untuk menilai kinerja

Supervised Learning dengan scikit-learn

Matriks konfusi untuk menilai kinerja klasifikasi

  • Matriks konfusi

matriks_konfusi.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

label_terprediksi.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

label_sebenarnya.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

matriks_konfusi.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

true_positive.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

true_negative.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

false_negative.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

 

false_positive.png

Supervised Learning dengan scikit-learn

Menilai kinerja klasifikasi

matriks_konfusi.png

  • Akurasi:

ch3_1_v3.030.png

Supervised Learning dengan scikit-learn

Presisi

presisi.png

  • Presisi

rumus_presisi.png

  • Presisi tinggi = tingkat false positive lebih rendah
  • Presisi tinggi: Tidak banyak transaksi sah diprediksi sebagai penipuan
Supervised Learning dengan scikit-learn

Recall

recall.png

  • Recall

rumus_recall.png

  • Recall tinggi = tingkat false negative lebih rendah
  • Recall tinggi: Sebagian besar transaksi penipuan diprediksi benar
Supervised Learning dengan scikit-learn

Skor F1

  • Skor F1: $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Supervised Learning dengan scikit-learn

Matriks konfusi di scikit-learn

from sklearn.metrics import classification_report, confusion_matrix

knn = KNeighborsClassifier(n_neighbors=7)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
Supervised Learning dengan scikit-learn

Matriks konfusi di scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Supervised Learning dengan scikit-learn

Laporan klasifikasi di scikit-learn

print(classification_report(y_test, y_pred))
              precision    recall  f1-score   support

           0       0.86      0.99      0.92      1117
           1       0.76      0.16      0.26       217

    accuracy                           0.85      1334
   macro avg       0.81      0.57      0.59      1334
weighted avg       0.84      0.85      0.81      1334
Supervised Learning dengan scikit-learn

Ayo berlatih!

Supervised Learning dengan scikit-learn

Preparing Video For Download...