依 AUC 進行輸入選擇

R 的信用風險建模

Lore Dirick

Manager of Data Science Curriculum at Flatiron School

4 個羅吉斯回歸模型的 ROC 曲線

螢幕截圖 2020-06-22 6.31.53 PM.png

R 的信用風險建模

4 個羅吉斯回歸模型的 ROC 曲線

螢幕截圖 2020-06-22 6.31.44 PM.png

R 的信用風險建模

4 個羅吉斯回歸模型的 ROC 曲線

螢幕截圖 2020-06-22 6.31.33 PM.png

R 的信用風險建模

以 AUC 進行修剪

1) 先用包含所有變數的模型(此例為 7 個),計算 AUC

log_model_full <- glm(loan_status ~ loan_amnt + grade + home_ownership + 
                      annual_inc + age + emp_cat + ir_cat, 
                      family = "binomial", data = training_set)

predictions_model_full <- predict(log_model_full, 
                                  newdata = test_set, type ="response")

AUC_model_full <- auc(test_set$loan_status, predictions_model_full)
Area under the curve: 0.6512
R 的信用風險建模

2) 建立 7 個新模型,每次移除一個變數,並用測試集產生 PD 預測

log_1_remove_amnt <- glm(loan_status ~ grade + home_ownership + annual_inc + age + emp_cat + ir_cat,
                         family = "binomial",
                         data = training_set)

log_1_remove_grade <- glm(loan_status ~ loan_amnt + home_ownership + annual_inc + age + emp_cat + ir_cat,
                          family = "binomial",
                          data = training_set)

log_1_remove_home <- glm(loan_status ~ loan_amnt + grade + annual_inc + age + emp_cat + ir_cat,
                         family = "binomial",
                         data = training_set)

pred_1_remove_amnt <- predict(log_1_remove_amnt, newdata = test_set, type = "response")
pred_1_remove_grade <- predict(log_1_remove_grade, newdata = test_set, type = "response")
pred_1_remove_home <- predict(log_1_remove_home, newdata = test_set, type = "response")
...
R 的信用風險建模

3) 保留 AUC 最佳的模型(完整模型 AUC:0.6512)

auc(test_set$loan_status, pred_1_remove_amnt)
Area under the curve: 0.6537
auc(test_set$loan_status, pred_1_remove_grade)
Area under the curve: 0.6438
auc(test_set$loan_status, pred_1_remove_home)
Area under the curve: 0.6537

4) 重複以上步驟,直到 AUC(顯著)下降

R 的信用風險建模

一起來練習吧!

R 的信用風險建模

Preparing Video For Download...