이번 포스팅에서는 Information Value를 산출해 보겠습니다. Information Value에 대한 상세한 설명은 2021.07.04 - [CSS(Credit Scoring System)/신용평가모형 검증지표] - [R실습]Information Value 산출하기를 참고하시면 됩니다.
1. 실습 데이터 준비
우선, 아래 데이터를 다운로드합니다.
데이터에 대한 설명도 위의 링크를 참고하시면 됩니다.
2. Information Value 산출
Step 1) 테스트 데이터를 파이썬으로 불러오기
실습을 하려면 우선, 실습 데이터를 파이썬으로 불러와야 합니다.
import numpy as np
import pandas as pd
import math
# D드라이브의 python_exer 폴더에 있는 mpg.csv 파일 불러오기
mpg_data = pd.read_csv("D:/python_exer/mpg.csv")
Step2) 불러온 데이터 확인하기
mpg.csv 파일을 잘 불러왔는지 확인합니다. 데이터의 전체 행과 열의 개수를 확인합니다.
mpg_data.shape
확인 결과, mpg_data에는 총 32개의 행과 3개의 열을 가지고 있는 것을 알 수 있습니다.
데이터 구조를 살펴보겠습니다.
mpg_data.head(10)
head() 안에 10을 입력하여 상위 10개의 데이터 행을 출력하고, 대략적인 데이터 구조를 확인합니다.
Step 3) 산출하고자 하는 항목에 대한 구간화
# 'mpg' 열에 대한 quantile 값 확인
mpg_quantile = mpg_data.mpg.quantile(q=list(np.arange(0.05, 1, 0.05)), interpolation='nearest')
# 항목 구간화를 위한 열('mpg_grp')의 초기값 0 세팅
mpg_data["mpg_grp"] = 0
# percentile 40%, 75% 기준으로 총 3개로 구간화 수행
for i in range(mpg_data["mpg"].size) :
____if mpg_data.loc[i,"mpg"] <= mpg_quantile.iloc[7] :
________mpg_data.loc[i,"mpg_grp"] = 1
____elif mpg_data.loc[i,"mpg"] <= mpg_quantile.iloc[14] :
________mpg_data.loc[i,"mpg_grp"] = 2
____else : mpg_data.loc[i,"mpg_grp"] = 3
Step 4) 우량 고객군과 불량 고객군 전체 건수 및 구성비 산출
# 불량회원 여부 색인하여 bad_yn 칼럼 생성
mpg_data["bad_yn"] = np.where(mpg_data.vs == 0, 1, 0)
# 우량한 집단과 불량한 집단의 mpg_grp별 건수 산출
mpg_iv = mpg_data.groupby("mpg_grp")[["vs","bad_yn"]].sum().reset_index()
# 우량한 집단의 mpg_grp 구간별 구성비 산출
mpg_iv["good_pct"] = mpg_iv.vs / mpg_iv.vs.sum()
# 불량한 집단의 mpg_grp 구간별 구성비 산출
mpg_iv["bad_pct"] = mpg_iv.bad_yn / mpg_iv.bad_yn.sum()
mpg_iv
Step5) 최종 IV(=Information Value) 산출
for i in range(mpg_iv.mpg_grp.size):
____mpg_iv.loc[i,"iv"] = (mpg_iv.loc[i, "good_pct"] - mpg_iv.loc[i, "bad_pct"]) *
____math.log(mpg_iv.loc[i, "good_pct"] / mpg_iv.loc[i, "bad_pct"])
round(mpg_iv.IV.sum(),7)
IV 값이 2021.07.04 - [CSS(Credit Scoring System)/신용평가모형 검증지표] - [R실습]Information Value 산출하기에서 산출한 결과와 동일함을 확인할 수 있습니다.
반응형
'CSS(Credit Scoring System) > 신용평가모형 검증지표' 카테고리의 다른 글
[파이썬실습]신용평가 모형 검증(PSI 산출하기) (0) | 2021.08.26 |
---|---|
[파이썬실습]신용평가 모형 검증(AUROC 산출하기) (0) | 2021.08.25 |
[파이썬실습]신용평가 모형 검증(K-S 통계량 산출하기) (0) | 2021.08.23 |
[R실습]PSI 산출하기 (0) | 2021.07.07 |
[R실습]AUROC 산출하기 (0) | 2021.07.04 |
댓글