AUROC는 K-S통계량과 함께 신용평가 모형의 성능을 검증하는 주요 지표 중의 하나입니다. 자세한 설명은 2021.07.04 - [CSS(Credit Scoring System)/신용평가모형 검증지표] - [R실습]AUROC 산출하기에서 확인하시면 됩니다. 이번 포스팅에서는 파이썬을 활용해서 실습만 진행해 보겠습니다. 본 실습은 jupyter notebook을 사용했습니다.
1. 실습 데이터 준비
상위 링크된 포스팅에서 사용한 실습 데이터를 그대로 사용하겠습니다.
2. AUROC 산출
Step1) 테스트 데이터를 파이썬으로 불러오기
import numpy as np
import pandas as pd
import math
# D드라이브의 python_exer 폴더에 있는 test.csv 파일 불러오기
auroc_test = pd.read_csv("D:/python_exer/test.csv")
Step2) 불러온 데이터 확인하기
test.csv 파일을 잘 불러왔는지 확인합니다. 데이터의 전체 행과 열의 개수를 확인하고, 데이터의 구조를 대략적으로 탐색합니다.
auroc_test.shape
총 32개의 행과 3개의 열이 있음을 알 수 있습니다.
Step 3) AUROC 산출하기
# 불량 회원 색인을 위한 bad_yn 칼럼 추가
auroc_test["bad_yn"] = np.where(auroc_test["engine_type"] == 0, 1, 0)
# 미래에 돈을 잘 갚을 확률(prob) 별 우량한 집단 및 불량한 집단의 전체 건수 산출
auroc_test_grp = auroc_test.groupby("prob")[["engine_type", "bad_yn"]].sum().reset_index()
# 전체 우량한 집단 건수 산출
g_cnt = auroc_test_grp["engine_type"].sum()
# 전체 불량한 집단 건수 산출
b_cnt = auroc_test_grp["bad_yn"].sum()
# 미래에 돈을 잘 갚을 확률(prob) 구간의 실제 우량한 집단 비율 산출
auroc_test_grp["g_pct"] = auroc_test_grp["engine_type"] / g_cnt
# 미래에 돈을 잘 갚을 확률(prob) 구간의 실제 불량한 집단 비율 산출
auroc_test_grp["b_pct"] = auroc_test_grp["bad_yn"] / b_cnt
# 미래에 돈을 잘 갚을 확률(prob)이 증가함에 따른 실제 우량 및 불량한 집단의 누적 비율 산출
for i in range(auroc_test_grp["prob"].size) :
if i == 0 :
auroc_test_grp.loc[i,"g_cum_pct"] = auroc_test_grp.loc[i,"g_pct"]
auroc_test_grp.loc[i,"b_cum_pct"] = auroc_test_grp.loc[i,"b_pct"]
else :
auroc_test_grp.loc[i,"g_cum_pct"] = auroc_test_grp.loc[i-1,"g_cum_pct"] + auroc_test_grp.loc[i,"g_pct"]
auroc_test_grp.loc[i,"b_cum_pct"] = auroc_test_grp.loc[i-1,"b_cum_pct"] + auroc_test_grp.loc[i,"b_pct"]
# 미래에 돈을 잘 갚을 확률(prob) 구간별 AUROC 산출
for i in range(auroc_test_grp["prob"].size) :
____auroc_test_grp.loc[i, "auroc"] = 0.5 * auroc_test_grp.loc[i, "g_pct"] * auroc_test_grp.loc[i, "b_pct"] +
_____________________________________(1 -auroc_test_grp.loc[i, "g_cum_pct"]) * auroc_test_grp.loc[i, "b_pct"]
# 최종 AUROC 산출
round(auroc_test_grp["auroc"].sum(),7)
최종 산출된 값이 상위 링크된 포스팅에서 산출한 값과 동일함을 알 수 있습니다.
반응형
'CSS(Credit Scoring System) > 신용평가모형 검증지표' 카테고리의 다른 글
[파이썬실습]신용평가 모형 검증(PSI 산출하기) (0) | 2021.08.26 |
---|---|
[파이썬실습]신용평가 모형 검증(Information Value 산출하기) (0) | 2021.08.24 |
[파이썬실습]신용평가 모형 검증(K-S 통계량 산출하기) (0) | 2021.08.23 |
[R실습]PSI 산출하기 (0) | 2021.07.07 |
[R실습]AUROC 산출하기 (0) | 2021.07.04 |
댓글