R'de karışıklık matrisi nasıl oluşturulur (adım adım)
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.
Aşağıdaki adım adım örnek, R’de bir karışıklık matrisinin nasıl oluşturulacağını gösterir.
Adım 1: Lojistik regresyon modelini yerleştirin
Bu örnek için ISLR paketindeki varsayılan veri kümesini kullanacağız. Belirli bir kişinin kredisini ödeyememe olasılığını tahmin etmek için öğrenci durumunu, banka bakiyesini ve yıllık geliri kullanacağız.
Aşağıdaki kod, lojistik regresyon modelinin bu veri kümesine nasıl sığdırılacağını gösterir:
#load necessary packages library (caret) library (InformationValue) library (ISLR) #load dataset data <-Default #split dataset into training and testing set set. seeds (1) sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family=" binomial ", data=train)
Adım 2: Karışıklık Matrisini Oluşturun
Daha sonra, bir karışıklık matrisi oluşturmak için caret paketindeki ConfusedMatrix() fonksiyonunu kullanacağız:
#use model to predict probability of default
predicted <- predict(model, test, type="response")
#convert defaults from "Yes" and "No" to 1's and 0's
test$default <- ifelse(test$default==" Yes ", 1, 0)
#find optimal cutoff probability to use to maximize accuracy
optimal <- optimalCutoff(test$default, predicted)[1]
#create confusion matrix
confusionMatrix(test$default, predicted)
0 1
0 2912 64
1 21 39
3. Adım: Karışıklık matrisini değerlendirin
Karışıklık matrisini kullanarak aşağıdaki metrikleri de hesaplayabiliriz:
- Duyarlılık: “Gerçek pozitiflik oranı” – modelin doğru şekilde tahmin ettiği bireylerin temerrüde düşecek yüzdesi.
- Özgüllük: “Gerçek negatif oran” – modelin doğru şekilde tahmin ettiği bireylerin temerrüde düşmeyecek yüzdesi.
- Toplam yanlış sınıflandırma oranı: Model tarafından yapılan toplam yanlış sınıflandırmaların yüzdesi.
Aşağıdaki kod bu metriklerin nasıl hesaplanacağını gösterir:
#calculate sensitivity
sensitivity(test$default, predicted)
[1] 0.3786408
#calculate specificity
specificity(test$default, predicted)
[1] 0.9928401
#calculate total misclassification error rate
misClassError(test$default, predicted, threshold =optimal)
[1] 0.027
Bu model için toplam sınıflandırma hatası oranı %2,7’dir .
Genel olarak bu oran ne kadar düşük olursa model sonuçları o kadar iyi tahmin edebilir. Dolayısıyla bu özel modelin, bir bireyin temerrüde düşüp düşmeyeceğini tahmin etmede çok etkili olduğu kanıtlanmıştır.