손해비용 최소화를 위한 신용평가 분류 모형(cost sensitive classification)
TRANSCRIPT
손해비용 최소화를 위한 신용평가 분류방법
Data Science School 2기김 성 진 (sanjaykim)
Cost-Sensitive classification for P2P
< 질문 >
기존 신용평가 모델의 개선점은 무엇일까?
P2P 회사 경쟁력 → “신용평가 모델”
김 성 진
< 질문 >
기존 신용평가 모델의 개선점은 무엇일까?
P2P 회사 경쟁력 → “신용평가 모델”
“손해 비용”을 고려한 분류 방법
김 성 진
< 질문 >
기존 신용평가 모델의 개선점은 무엇일까?
P2P 회사 경쟁력 → “신용평가 모델”
“손해 비용”을 고려한 분류 방법
실제 P2P 회사에 적용을 해보자 !
김 성 진
“신용평가 모델” = 구분하는 것
대출승인
상환 못할고객
상환 할고객
대출거절
신용평가모델
김 성 진
“신용평가 모델” = 구분하는 것
대출승인
상환 못할고객
상환 할고객
대출거절
예측 & 분류신용평가
모델
새 고객
김 성 진
▶ 예시 : 기존 vs “비용”관점
고객ID 대출금 등급 소득 …
1 500만 D 100만 …
2 400만 A 200만 …
3 1,000만 C 300만 …
4 200만 E 80만 …
5 800만 A 130만 …
6 3,000만 B 400만 …
7 300만 C 70만 …
김 성 진
▶ 예시 : 기존 vs “비용”관점
고객ID 대출금 등급 소득 …
1 500만 D 100만 …
2 400만 A 200만 …
3 1,000만 C 300만 …
4 200만 E 80만 …
5 800만 A 130만 …
6 3,000만 B 400만 …
7 300만 C 70만 …
대출
거절
승인
승인
거절
승인
거절
거절
최종 판단
김 성 진
▶ 예시 : 기존 vs “비용”관점
고객ID 대출금 등급 소득 …
1 500만 D 100만 …
2 400만 A 200만 …
3 1,000만 C 300만 …
4 200만 E 80만 …
5 800만 A 130만 …
6 3,000만 B 400만 …
7 300만 C 70만 …
대출
거절
승인
승인
거절
승인
거절
거절
최종 판단
실제
미상환
상환
미상환
상환
미상환
상환
상환
GOOD
BAD
김 성 진
▶ 예시 : 기존 vs “비용”관점
고객ID 대출금 등급 소득 …
1 500만 D 100만 …
2 400만 A 200만 …
3 1,000만 C 300만 …
4 200만 E 80만 …
5 800만 A 130만 …
6 3,000만 B 400만 …
7 300만 C 70만 …
손실금못받은수수료
총합
0 0 0
0 0 0
500만 0 500만
- 13만 13만
300만 0 300만
- 120만 120만
- 17만 17만
대출
거절
승인
승인
거절
승인
거절
거절
최종 판단
실제
미상환
상환
미상환
상환
미상환
상환
상환
GOOD
BAD
손해 비용
김 성 진
미상환 상환
거절 1건 3건
승인 2건 1건
▶ 모델 평가 방법
건수가낮을 수록
미상환 상환
거절 0원 150만원
승인 800만원 0원
AccuracyPrecision
RecallF1 score
비용이낮을 수록
AccuracyPrecision
RecallF1 score
* Cost Matrix* Confusion Matrix고객 손실금
못받은수수료
3 500만 0
4 - 13만
5 300만 0
6 - 120만
7 - 17만
① : 똑같은가중치 적용② : 모든 고객을동등하게고려함(“건수“)
① : 금액이다름② : 비용 고객별로다 다름
좋은 모델이란?
모델이틀렸을 때① 손실금, 수수료② 각 고객 별
모델 평가지표
기존 방법 비용 관점
김 성 진
미상환 상환
거절 1건 3건
승인 2건 1건
▶ 모델 평가 방법
건수가낮을 수록
미상환 상환
거절 0원 150만원
승인 800만원 0원
AccuracyPrecision
RecallF1 score
비용이낮을 수록
+비용이 얼마나 절감되는가?
AccuracyPrecision
RecallF1 score
* Cost Matrix* Confusion Matrix고객 손실금
못받은수수료
3 500만 0
4 - 13만
5 300만 0
6 - 120만
7 - 17만
① 다르다
② 다르다
① : 똑같은가중치 적용② : 모든 고객을동등하게고려함(“건수“)
① : 금액이다름② : 비용 고객별로다 다름
좋은 모델이란?
모델이틀렸을 때① 손실금, 수수료② 각 고객 별
모델 평가지표
기존 방법 비용 관점
김 성 진
<분석 절차>
1. Data 입수 (kaggle.com 렌딩클럽)
2. Data Preprocessing
3. Data로 cost matrix 산출
4. 알고리즘 적용 (LR, DT, RF, BMR, CSDT, CSRP)
5. Fit & Predict (cost matrix 사용)
6. Savings 산출 (cost matrix 사용)
7. 모델 별 비교 평가
▶ "비용" 고려한 분류 방법
비용 관점 분류를 위한 파이썬 오픈소스 라이브러리(Scikit-learn, pandas, numpy 기반)
여러가지 알고리즘, Dataset 보유함
김 성 진
▶ Data : Lending Club Loan Data
<Preprocessing>
• 총 Feature : 72개• Row : 887,379개
Target = loan_status확실한 Data만 사용(진행 중 제외)0, 1로 환산
na값 제거기타 불필요한 feature 제거
<최종 사용 Data>• Feature : 12개• Row : 256,699개
총 연체율 : 약 18%• Train : 75%• Test : 25%
이자율
대출금액
기간
월수입
수수료
이자율
부채율
집
보유여부
기타 주요 Features
김 성 진
▶ Data : Lending Club Loan Data
<Preprocessing>
• 총 Feature : 72개• Row : 887,379개
Target = loan_status확실한 Data만 사용(진행 중 제외)0, 1로 환산
na값 제거기타 불필요한 feature 제거
<최종 사용 Data>• Feature : 12개• Row : 256,699개
총 연체율 : 약 18%• Train : 75%• Test : 25%
이자율
대출금액
기간
월수입
수수료
이자율
부채율
집
보유여부
기타 주요 Features
김 성 진
▶ 알고리즘
1. Bayes Minimum Risk
2. 비용 관점 Decision Tree
3. 비용 관점 Random Patches
기존 모델 활용 → Cost Matrix 사용 → 모든 고객 Risk 계산
(대출 승인)
(대출 거절)
기존 모델에서 예측한 부실률
CostMatrix
Random Patch앙상블 방법2번 X 10개
분류
작은 Class 선택
Misclassification
Entropy
Gini
Direct Cost
Entropy Cost
Gini Cost
비용 관점Weighted Voting
Gain
계산비용 환산
김 성 진
▶ 결과
<비용>
기존 모델 비용 고려 모델
<Savings>
모델 사용 안한 경우 : 모든 대출 승인 or 대출 거절
$ 30,842,131
기존 모델 비용 고려 모델
김 성 진
▶ 참고자료 : Savings 란?
0
全대출승인 全대출거절
모델
비용절감
손해비용
적은 값 기준
모델 사용 안함
모델 사용 함
Savings = 全대출거절
비용절감
(≤ 1)
김 성 진
<참고 자료>
1. Costcla Documentation : http://albahnsen.com/CostSensitiveClassification/
2. Costcla Sourcecode : https://github.com/albahnsen/CostSensitiveClassification
3. Data : https://www.kaggle.com/wendykan/lending-club-loan-data
4. Lendingclub fees : https://www.lendingclub.com/public/borrower-rates-and-fees.action
5. Papers : [1] Elkan, C. (2001, August). The foundations of cost-sensitive learning. In International Joint
Conference on Artificial Intelligence (Vol. 17, No. 1, pp. 973-978). LAWRENCE ERLBAUM
ASSOCIATES LTD.
[2] Margineantu, D. (2002). Class probability estimation and cost-sensitive classification
decisions. Machine Learning: ECML 2002, 167-185.
<본 프로젝트 Git-hub 주소>
: https://github.com/sanjaykim/intro_to_costcla_for_p2p
김 성 진