신용 승인율

Python을 활용한 신용 위험 모델링

Michael Crabtree

Data Scientist, Ford Motor Company

임계값과 대출 상태

  • 이전에는 prob_default 값 범위에 대한 임계값을 설정했습니다
    • 이를 사용해 대출의 예측된 loan_status를 변경했습니다
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.4 else 0)
대출 prob_default threshold loan_status
1 0.25 0.4 0
2 0.42 0.4 1
3 0.75 0.4 1
Python을 활용한 신용 위험 모델링

임계값과 승인율

  • 모델 예측을 사용해 더 나은 임계값을 설정합니다
    • 새로운 대출을 승인하거나 거부하는 데도 사용할 수 있습니다
  • 모든 새로운 대출에 대해 부도 가능성이 높은 대출을 거부하고자 합니다
    • 테스트 데이터를 새로운 대출의 예시로 사용합니다
  • 승인율: 포트폴리오 내 부도 건수를 낮게 유지하기 위해 승인되는 새로운 대출의 비율
    • 부도인 대출이 승인되면 거짓 음성(false negative)과 비슷한 영향을 미칩니다
Python을 활용한 신용 위험 모델링

승인율 이해하기

  • 예시: prob_default 값이 가장 낮은 대출의 85%를 승인합니다

예측 확률 분포 히스토그램

Python을 활용한 신용 위험 모델링

임계값 계산하기

  • 승인율 85%에 해당하는 임계값을 계산합니다
import numpy as np
# Compute the threshold for 85% acceptance rate
threshold = np.quantile(prob_default, 0.85)
0.804
대출 prob_default 임계값 예측 loan_status 승인 또는 거부
1 0.65 0.804 0 승인
2 0.85 0.804 1 거부
Python을 활용한 신용 위험 모델링

계산된 임계값 적용하기

  • 새로운 임계값을 사용해 loan_status 값을 다시 할당합니다
# Compute the quantile on the probabilities of default
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.804 else 0)
Python을 활용한 신용 위험 모델링

불량률

  • 임계값을 계산하더라도 승인된 대출 중 일부는 부도가 발생합니다
  • 이는 모델의 보정이 잘 되지 않은 구간의 prob_default 값을 가진 대출입니다

불량률이 강조된 승인 대출 막대 그래프

Python을 활용한 신용 위험 모델링

불량률 계산

불량률 계산 공식

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • 정상이 0이고 부도가 1이면 sum()은 부도 건수입니다
  • 단일 열에 대한 .count()는 데이터 프레임의 행 수와 같습니다
Python을 활용한 신용 위험 모델링

연습해 봅시다!

Python을 활용한 신용 위험 모델링

Preparing Video For Download...