발표를 마치고 마지막 요약본을 읽어봤다..
많이 바뀌었지만 반영은 안함 ㅋ ㅋ ㅋ
모델링에 참여를 많이 안한 것 같아서 걱정했는데,
추가분석까지 피드백이 괜찮아서 다행이다.
서론
프로젝트 개요 : 고객 금융 데이터 활용한 대출 등급 분류
고객 관련 금융 정보를 활용하여 대출의 등급을 분류하고 대출 등급에 영향을 미치는 변수를 파악하는 것을 목표로 한다.
EDA 과정을 깊게 들여다보며 변수끼리 어떤 관계성을 지니고 있고, 타겟에 어떤 방식으로 영향을 미치는지 논리적으로 탐구한다.
목적과 목표 설정 : 대출 등급 정의 및 고객 분류
목적 : 고객 정보를 활용하여 대출등급 분류
목표 : 세부 대출 등급 정의 및 고객 분류
“주제 6번, 고객 금융 데이터를 활용한 대출 등급 분류 프로젝트입니다”
Column | Dtype |
---|---|
ID | object |
대출금액 | int64 |
대출기간 | object |
근로기간 | object |
주택소유상태 | object |
연간소득 | int64 |
부채대비소득_비율 | float64 |
총계좌수 | int64 |
대출목적 | object |
최근2년간연체_횟수 | int64 |
총상환원금 | int64 |
총상환이자 | float64 |
총연체금액 | float64 |
연체계좌수 | float64 |
대출등급 | object |
이상치 탐지 및 처리
🔥 전처리 :대출 기간 : 문자형 데이터 숫자형으로 변환
근로 기간 : 단위 통일 및 범주화
대출 목적 : 비슷한 목적, 값이 작은 항목 묶어서 분류
주택소유상태 : 불분명한 데이터(1개) 편입
결측치 및 이상치 : 확인 결과 이상 없음 (정규화)
데이터 정규화 또는 표준화
🔥 모델링을 위한 인코딩, 스케일링 범주형 데이터 : 대출기간 ; One-Hot Encoding 대출등급 : 라벨인코딩 수치형 데이터 : 로그 스케일링 (정규분포 형태로 변환)대출금액, 연간소득, 총상환원금, 총상환이자
로그스케일링 전
로그스케일링 후
→ 총상환원금, 총상환이자 : 0이 두드러지게 나타남
(추후 언급할 예정이라 이 파트에선 자세히 안다룸)
”스케일링 후 0에 몰려있는 값들 이상치로 판단 X”
“이러한 과정으로 XGboost 채택”
모델링 - 2차 모델링
2차 모델링 : 타겟 컬럼 불균형 , 오버샘플링?
모델링 - 3차 모델링
3차 모델링 : 중요변수 추출
⬆️ 변수 중요도 확인
변수 중요도_상위 5개의 변수 추출
총상환원금 ,총상환이자 중요도 높다고 판단 → 관련 파생변수 생성
중요 변수 5개 + 상환비율(파생변수) 1개 => 총 6가지
=> 결과 95점
(f1 score 시각화)
모델링 - 모델검증 진행
모델 검증 / Feature Importance 추가 설명
검증 : K-FOLD
테스트 데이터 교차 검증 정확도 - 평균 : 0.96, 표준편차 : 0.00
표준편차가 0.01로 작음 > 일반적으로 안정적인 교차 검증 결과는 모델이 데이터에 대해 일관된 성능을 의미 (모델의 신뢰도 증가)
검증 : 혼동행렬 (오차범위가 0일수록 좋다)
검증 : 예측값과 실제값 비교
=> 우리 모델 이렇게나 좋아
모델 성능평가 요약 “이러한 과정을 거쳐 점수가 높은 분류 모델을 만들 수 있었다”
점수가 높은 모델을 찾고, 변수 중요도를 판별하는 등의 과정을 통해 성능을 높일 수 있음.
추가 분석 : 중요 변수 분석 / 총상환금액 ‘0’데이터 통계분석
중요 변수 분석
가설 : “대출 등급 분류에 상환비율이 가장 중요한 변수일 것이다”
최종 모델 Feature Importance : 파생변수 였던 상환 비율, 총상환이자, 총상환원금이 중요변수로 확인
최종 모델의 변수 중요도를 확인했을 때 대출 등급에 가장 영향을 많이 끼친 변수는 이 세 가지.
대출 등급에 따른 총상환원금과 총상환이자의 평균값 :
총상환원금과 총상환이자의 등급별 평균값을 살펴보면 다른 변수에 비해 변동이 큰 것을 확인할 수 있다.
등급이 낮아질 수록 상환 원금은 줄어들고 상환 이자가 가파르게 상승한다.
해당 그래프를 통해 대출 등급이 상환 능력과 밀접한 연관이 있으며, 상환 능력을 확인 할 수 있는 이 두 변수가 중요한 변수임을 알 수 있다.
또한 변수 중요도 그래프의 가장 높은 점수를 차지하는 “상환비율” 역시 총상환금액과 총상환이자를 활용한 파생변수 이므로, 두 변수가 대출 등급을 분류하는데에 큰 비중을 차지한다는 근거가 될 수 있다.
총상환금액 ‘0’ 데이터 통계분석
가설 : “총상환금액이 ‘0’인 고객은 상환능력이 부족할 것이다.”
스케일링 당시 총상환금액 0인 데이터가 6000개나 되어 이상치 판단 여부에 대한 고민
1) 연체 경험
연체 경험이 있는 고객도 있고, 연체 경험이 없는 고객(납부일이 되지 않은 고객)도 존재.
또한 원금을 상환하지 못하고 이자만 납부한 고객은 수가 거의 없었다.
해당 데이터로는 상환금액이 없는 A그룹의 상환능력을 판단하기 어려움.
2) 전체 데이터와 비교
총상환금액 ‘0’인 고객을 A 그룹이라고 했을 때, A 그룹의 상환 능력을 판별할 변수 부족.
EDA를 통해 전체 데이터 그룹과 A 그룹을 비교하니 전반적으로 큰 차이가 없음을 알 수 있었다.
연간 소득도 전체 데이터와 A 그룹의 차이가 크지 않고 대출 기간이 더 길거나, 주택 소유 상태 또한 전월세 비율이 높거나 하는 등, A 그룹만의 특징 없음.
따라서 A 그룹이 상환 능력이 부족한 그룹이라고 볼 수 없다.
대출 시작 시점과 대출 등급 선정 시점이 비슷해 아직 납부일이 되지 않은 고객일 것으로 추측.
총상환금액이 0인 고객의 대출 등급을 효과적으로 분류하기 위해서는 대출 시작 시점을 판별할 수 있는 컬럼 추가 필요.
한계점 및 개선사항