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