모델 평가와 구현

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

Michael Crabtree

Data Scientist, Ford Motor Company

분류 보고서 비교하기

  • classification_report()로 보고서를 생성하고 비교해 보세요

로지스틱 회귀와 그래디언트 부스팅 트리의 분류 보고서

F1 점수와 매크로 평균 F1 점수 공식

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

ROC 및 AUC 분석

  • 성능이 더 좋은 모델일수록 리프트가 더 큽니다
  • 리프트가 클수록 AUC 점수도 높아집니다

두 모델의 ROC 차트 예시

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

모델 보정

  • 부도 확률은 모델의 신뢰 수준을 정확히 반영해야 합니다
    • 부도 확률 예측에는 일정 수준의 불확실성이 존재합니다
  • 대출 표본의 예측 부도 확률 평균은 해당 표본의 실제 부도 비율과 비슷해야 합니다
대출 표본 예측 PD 평균 실제 부도 표본 비율 보정됨?
10 0.12 0.12 예
10 0.25 0.65 아니요
1 http://datascienceassn.org/sites/default/files/Predicting%20good%20probabilities%20with%20supervised%20learning.pdf
Python을 활용한 신용 위험 모델링

보정값 계산하기

  • 예측 확률별 실제 부도 비율을 보여줍니다
  • 사실상 calibration_curve() 결과를 선 그래프로 나타낸 것입니다
from sklearn.calibration import calibration_curve
calibration_curve(y_test, probabilities_of_default, n_bins = 5)
# Fraction of positives
(array([0.09602649, 0.19521012, 0.62035996, 0.67361111]),
# Average probability
 array([0.09543535, 0.29196742, 0.46898465, 0.65512207]))
Python을 활용한 신용 위험 모델링

보정 곡선 그리기

plt.plot(mean_predicted_value, fraction_of_positives, label="%s" % "Example Model")

보정 곡선 예시

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

보정 곡선 확인하기

  • 예시로 완벽한 보정선 위아래로 두 지점을 선택했습니다

보정되지 않은 예측 두 가지를 보여주는 보정 곡선

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

보정 곡선 해석하기

위쪽 예시를 포함한 보정 곡선

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

보정 곡선 해석하기

아래쪽 예시를 포함한 보정 곡선

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

연습해 봅시다!

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

Preparing Video For Download...