Cara membuat matriks kebingungan dengan python


Regresi logistik adalah jenis regresi yang dapat kita gunakan jika variabel responnya adalah biner.

Cara umum untuk menilai kualitas model regresi logistik adalah dengan membuat matriks konfusi , yaitu tabel berukuran 2 × 2 yang menunjukkan nilai prediksi model versus nilai sebenarnya dari kumpulan data pengujian.

Untuk membuat matriks konfusi untuk model regresi logistik dengan Python, kita dapat menggunakan fungsi konfusi_matrix() dari paket sklearn :

 from sklearn import metrics
metrics.metrics. confusion_matrix (y_actual, y_predicted)

Contoh berikut menunjukkan cara menggunakan fungsi ini untuk membuat matriks konfusi untuk model regresi logistik dengan Python.

Contoh: Membuat Matriks Kebingungan dengan Python

Misalkan kita memiliki dua tabel berikut yang berisi nilai aktual dari variabel respons serta nilai yang diprediksi oleh model regresi logistik:

 #define array of actual values
y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

#define array of predicted values
y_predicted = [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]

Kita dapat menggunakan fungsi konfusi_matrix() sklearn untuk membuat matriks konfusi untuk data ini:

 from sklearn import metrics

#create confusion matrix
c_matrix = metrics. confusion_matrix (y_actual, y_predicted)

#print confusion matrix
print (c_matrix)

[[6 4]
 [2 8]]

Jika mau, kita bisa menggunakan fungsi crosstab() panda untuk membuat matriks konfusi yang lebih menarik secara visual:

 import pandas as pd

y_actual = pd. Series (y_actual, name=' Actual ')
y_predicted = pd. Series (y_predicted, name=' Predicted ')

#create confusion matrix
print (pd. crosstab (y_actual, y_predicted))

Predicted 0 1
Current         
0 6 4
1 2 8

Kolom menunjukkan nilai prediksi untuk variabel respon dan baris menunjukkan nilai sebenarnya.

Kita juga dapat menghitung akurasi, presisi, dan perolehan kembali menggunakan fungsi dalam paket sklearn:

 #print accuracy of model
print ( metrics.accuracy_score (y_actual, y_predicted))

0.7

#print precision value of model
print ( metrics.precision_score (y_actual, y_predicted))

0.667

#print recall value of model
print (metrics. recall_score (y_actual, y_predicted))

0.8

Berikut penyegaran singkat tentang akurasi, presisi, dan perolehan:

  • Akurasi : Persentase prediksi yang benar
  • Akurasi : Benar prediksi positif relatif terhadap total prediksi positif
  • Pengingat : Mengoreksi prediksi positif terhadap total positif aktual

Dan inilah cara masing-masing metrik ini dihitung dalam contoh kita:

  • Akurasi : (6+8) / (6+4+2+8) = 0,7
  • Akurasi : 8 / (8+4) = 0,667
  • Pengingat : 8 / (2+8) = 0,8

Sumber daya tambahan

Pengantar Regresi Logistik
3 jenis regresi logistik
Regresi logistik vs regresi linier

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *