손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)
1. 손해비용 최소화를 위한 신용평가 분류방법
Data Science School 2기
김 성 진 (sanjaykim)
Cost-Sensitive classification for P2P
2. < 질문 >
기존 신용평가 모델의 개선점은 무엇일까?
P2P 회사 경쟁력 → “신용평가 모델”
김 성 진
3. < 질문 >
기존 신용평가 모델의 개선점은 무엇일까?
P2P 회사 경쟁력 → “신용평가 모델”
“손해 비용”을 고려한 분류 방법
김 성 진
4. < 질문 >
기존 신용평가 모델의 개선점은 무엇일까?
P2P 회사 경쟁력 → “신용평가 모델”
“손해 비용”을 고려한 분류 방법
실제 P2P 회사에 적용을 해보자 !
김 성 진
5. “신용평가 모델” = 구분하는 것
대출
승인
상환 못할
고객
상환 할
고객
대출
거절
신용평가
모델
김 성 진
6. “신용평가 모델” = 구분하는 것
대출
승인
상환 못할
고객
상환 할
고객
대출
거절
예측 & 분류
신용평가
모델
새 고객
김 성 진
7. ▶ 예시 : 기존 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만 …
김 성 진
8. ▶ 예시 : 기존 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만 …
대출
거절
승인
승인
거절
승인
거절
거절
최종 판단
김 성 진
9. ▶ 예시 : 기존 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
김 성 진
10. ▶ 예시 : 기존 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
손해 비용
김 성 진
11. 미상환 상환
거절 1건 3건
승인 2건 1건
▶ 모델 평가 방법
건수가 낮을 수록
미상환 상환
거절 0원 150만원
승인 800만원 0원
Accuracy
Precision
Recall
F1 score
비용이 낮을 수록
Accuracy
Precision
Recall
F1 score
* Cost Matrix* Confusion Matrix
고객 손실금
못받은
수수료
3 500만 0
4 - 13만
5 300만 0
6 - 120만
7 - 17만
① : 똑같은 가중치 적용
② : 모든 고객을 동등하게 고려함(“건수“)
① : 금액이 다름
② : 비용 고객별로 다 다름
좋은 모델이란?
모델이 틀렸을 때
① 손실금, 수수료
② 각 고객 별
모델 평가 지표
기존 방법 비용 관점
김 성 진
12. 미상환 상환
거절 1건 3건
승인 2건 1건
▶ 모델 평가 방법
건수가 낮을 수록
미상환 상환
거절 0원 150만원
승인 800만원 0원
Accuracy
Precision
Recall
F1 score
비용이 낮을 수록
+
비용이 얼마나 절감되는가?
Accuracy
Precision
Recall
F1 score
* Cost Matrix* Confusion Matrix
고객 손실금
못받은
수수료
3 500만 0
4 - 13만
5 300만 0
6 - 120만
7 - 17만
① 다르다
② 다르다
① : 똑같은 가중치 적용
② : 모든 고객을 동등하게 고려함(“건수“)
① : 금액이 다름
② : 비용 고객별로 다 다름
좋은 모델이란?
모델이 틀렸을 때
① 손실금, 수수료
② 각 고객 별
모델 평가 지표
기존 방법 비용 관점
김 성 진
13. <분석 절차>
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 보유함
김 성 진
14. ▶ 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
김 성 진
15. ▶ 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
김 성 진
16. ▶ 알고리즘
1. Bayes Minimum Risk
2. 비용 관점 Decision Tree
3. 비용 관점 Random Patches
기존 모델 활용 → Cost Matrix 사용 → 모든 고객 Risk 계산
(대출 승인)
(대출 거절)
기존 모델에서 예측한 부실률
Cost
Matrix
Random Patch
앙상블 방법
2번 X 10개
분류
작은 Class 선택
Misclassification
Entropy
Gini
Direct Cost
Entropy Cost
Gini Cost
비용 관점
Weighted Voting
Gain
계산비용 환산
김 성 진
17. ▶ 결과
<비용>
기존 모델 비용 고려 모델
<Savings>
모델 사용 안한 경우 : 모든 대출 승인 or 대출 거절
$ 30,842,131
기존 모델 비용 고려 모델
김 성 진
18. ▶ 참고자료 : Savings 란?
0
全대출승인 全대출거절
모델
비용절감
손해
비용
적은 값 기준
모델 사용 안함
모델 사용 함
Savings =
全대출거절
비용절감
(≤ 1)
김 성 진
19. <참고 자료>
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
김 성 진