Python'da karışıklık matrisi nasıl oluşturulur


Lojistik regresyon , yanıt değişkeni ikili olduğunda kullanabileceğimiz bir regresyon türüdür.

Lojistik regresyon modelinin kalitesini değerlendirmenin yaygın bir yolu, modelin tahmin edilen değerleri ile test veri kümesinin gerçek değerlerini gösteren 2×2’lik bir tablo olan bir karışıklık matrisi oluşturmaktır.

Python’da lojistik regresyon modeli için bir karışıklık matrisi oluşturmak için sklearn paketindeki kafa karışıklığı_matrix() işlevini kullanabiliriz:

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

Aşağıdaki örnek, Python’da bir lojistik regresyon modeli için bir karışıklık matrisi oluşturmak amacıyla bu işlevin nasıl kullanılacağını gösterir.

Örnek: Python’da Karışıklık Matrisi Oluşturma

Bir yanıt değişkeninin gerçek değerlerinin yanı sıra lojistik regresyon modeli tarafından tahmin edilen değerleri içeren aşağıdaki iki tabloya sahip olduğumuzu varsayalım:

 #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]

Bu veriler için bir karışıklık matrisi oluşturmak amacıyla sklearn’in Confused_matrix() fonksiyonunu kullanabiliriz:

 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]]

İstersek görsel olarak daha çekici bir karışıklık matrisi oluşturmak için pandaların crosstab() fonksiyonunu kullanabiliriz:

 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

Sütunlar yanıt değişkeni için tahmin edilen değerleri, satırlar ise gerçek değerleri gösterir.

Ayrıca sklearn paketindeki işlevleri kullanarak doğruluğu, kesinliği ve geri çağırmayı da hesaplayabiliriz:

 #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

Doğruluk, kesinlik ve hatırlama konusunda kısa bir hatırlatma:

  • Doğruluk : Doğru tahminlerin yüzdesi
  • Doğruluk : Pozitif tahminleri toplam pozitif tahminlere göre düzeltin
  • Hatırlatma : Pozitif tahminlerin toplam gerçek pozitiflere göre düzeltilmesi

Örneğimizde bu ölçümlerin her biri aslında nasıl hesaplandı:

  • Doğruluk : (6+8) / (6+4+2+8) = 0,7
  • Doğruluk : 8 / (8+4) = 0,667
  • Hatırlatma : 8 / (2+8) = 0,8

Ek kaynaklar

Lojistik Regresyona Giriş
3 tür lojistik regresyon
Lojistik regresyon ve doğrusal regresyon

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir