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