Belirli bir eşik değeri için bağ fonksiyonlarını karşılaştırma
Bu son egzersizde, üç bağ fonksiyonunun (logit, probit ve cloglog) her biriyle birer model kuracak, test seti için tahminler yapacak, verilen bir eşik değerine göre tahminleri uygun gruba (temerrüt vs. temerrüt değil) sınıflandıracak, bir karışıklık matrisi oluşturacak ve her bir model için bu eşik değeri altında doğruluk ve duyarlılığı hesaplayacaksın! Vay, şimdiye kadar epey şey öğrendin. Ve son olarak, verilen eşik değeri için doğruluk açısından en iyi performans gösteren modeli bulmaya çalışacaksın!
Modeller arasındaki farkların genelde çok küçük olacağını ve sonuçların yine seçilen eşik değerine bağlı olduğunu bilmek önemli. Gözlenen sonuç (temerrüt vs. temerrüt değil) konsolda true_val içinde tutuluyor.
Bu egzersiz
R ile Kredi Riski Modellemesi
kursunun bir parçasıdırEgzersiz talimatları
- Sırasıyla
logit,probitvecloglogbağlarını kullanarak üç lojistik regresyon modeli kur. Kodun bir kısmı verilmiş. Tahmin değişkenleri olarakage,emp_cat,ir_catveloan_amntkullan. - Tüm modeller için
test_setüzerinde tahmin yap. - Modellerin performansını değerlendirebilmek için her biri için %14 eşik değeri kullanarak sınıflandırma yap.
- Üç model için bir karışıklık matrisi oluştur.
- Son olarak, tüm modeller için sınıflandırma doğruluğunu hesapla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Fit the logit, probit and cloglog-link logistic regression models
log_model_logit <- glm(loan_status ~ age + emp_cat + ir_cat + loan_amnt,
family = binomial(link = logit), data = training_set)
log_model_probit <-
log_model_cloglog <-
# Make predictions for all models using the test set
predictions_logit <- predict(log_model_logit, newdata = test_set, type = "response")
predictions_probit <-
predictions_cloglog <-
# Use a cut-off of 14% to make binary predictions-vectors
cutoff <- 0.14
class_pred_logit <- ifelse(predictions_logit > cutoff, 1, 0)
class_pred_probit <-
class_pred_cloglog <-
# Make a confusion matrix for the three models
tab_class_logit <- table(true_val,class_pred_logit)
tab_class_probit <-
tab_class_cloglog <-
# Compute the classification accuracy for all three models
acc_logit <- sum(diag(tab_class_logit)) / nrow(test_set)
acc_probit <-
acc_cloglog <-