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, kursun bir parçasıdır
R ile Kredi Riski Modellemesi
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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 <-