19
손해비용 최소화를 위한 신용평가 분류방법 Data Science School 2기 김 성 진 (sanjaykim) Cost-Sensitive classification for P2P

손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

Embed Size (px)

Citation preview

Page 1: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

손해비용 최소화를 위한 신용평가 분류방법

Data Science School 2기김 성 진 (sanjaykim)

Cost-Sensitive classification for P2P

Page 2: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

< 질문 >

기존 신용평가 모델의 개선점은 무엇일까?

P2P 회사 경쟁력 → “신용평가 모델”

김 성 진

Page 3: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

< 질문 >

기존 신용평가 모델의 개선점은 무엇일까?

P2P 회사 경쟁력 → “신용평가 모델”

“손해 비용”을 고려한 분류 방법

김 성 진

Page 4: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

< 질문 >

기존 신용평가 모델의 개선점은 무엇일까?

P2P 회사 경쟁력 → “신용평가 모델”

“손해 비용”을 고려한 분류 방법

실제 P2P 회사에 적용을 해보자 !

김 성 진

Page 5: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

“신용평가 모델” = 구분하는 것

대출승인

상환 못할고객

상환 할고객

대출거절

신용평가모델

김 성 진

Page 6: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

“신용평가 모델” = 구분하는 것

대출승인

상환 못할고객

상환 할고객

대출거절

예측 & 분류신용평가

모델

새 고객

김 성 진

Page 7: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 예시 : 기존 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만 …

김 성 진

Page 8: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 예시 : 기존 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만 …

대출

거절

승인

승인

거절

승인

거절

거절

최종 판단

김 성 진

Page 9: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 예시 : 기존 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

김 성 진

Page 10: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 예시 : 기존 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

손해 비용

김 성 진

Page 11: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

미상환 상환

거절 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만

① : 똑같은가중치 적용② : 모든 고객을동등하게고려함(“건수“)

① : 금액이다름② : 비용 고객별로다 다름

좋은 모델이란?

모델이틀렸을 때① 손실금, 수수료② 각 고객 별

모델 평가지표

기존 방법 비용 관점

김 성 진

Page 12: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

미상환 상환

거절 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만

① 다르다

② 다르다

① : 똑같은가중치 적용② : 모든 고객을동등하게고려함(“건수“)

① : 금액이다름② : 비용 고객별로다 다름

좋은 모델이란?

모델이틀렸을 때① 손실금, 수수료② 각 고객 별

모델 평가지표

기존 방법 비용 관점

김 성 진

Page 13: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

<분석 절차>

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 보유함

김 성 진

Page 14: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 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

김 성 진

Page 15: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 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

김 성 진

Page 16: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 알고리즘

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

계산비용 환산

김 성 진

Page 17: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 결과

<비용>

기존 모델 비용 고려 모델

<Savings>

모델 사용 안한 경우 : 모든 대출 승인 or 대출 거절

$ 30,842,131

기존 모델 비용 고려 모델

김 성 진

Page 18: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

▶ 참고자료 : Savings 란?

0

全대출승인 全대출거절

모델

비용절감

손해비용

적은 값 기준

모델 사용 안함

모델 사용 함

Savings = 全대출거절

비용절감

(≤ 1)

김 성 진

Page 19: 손해비용 최소화를 위한 신용평가 분류 모형(Cost sensitive classification)

<참고 자료>

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

김 성 진