에잇퍼센트 CSS팀이 신용평가 모형에 머신러닝을 적용하며 시도한 것들을 정리한 글이다. 신용평가는 부실을 예측하기 위한 것이지만 부실 판단에 오랜 시간이 걸려 연체 여부 예측으로 갈음하는 것이 보통이라, 결국 분류 문제로 귀결된다. CB 데이터의 특수한 처리 방식부터 변수 선택, 전처리, 모형 비교까지 다룬다.
핵심 포인트- CB 데이터에는 Special Value라는 특수 값이 있는데, 이는 다른 금융회사가 변수를 통해 특정 회사의 카드 정책을 유추하는 것을 막기 위한 장치다.
- 또 다른 Special Value는 나누기 연산에서 분모에 0이 들어가는 문제를 방지하기 위해 둔다.
- 변수 선택에는 독립 변수와 종속 변수의 상관관계를 극대화하면서 독립 변수 사이의 관련성은 극소화하는 mrmr 방법론을 썼다.
- 기간 변화에도 견고한 선택이 되도록 기간을 임의로 골라 변수 선택을 여러 번 수행하고 그 결과 집합들의 교집합을 택했다.
- 신용평가에서 전통적으로 쓰는 Logistic Regression은 독립 변수의 영향을 선형적으로 파악하기 쉽지만 성능은 머신러닝 모형보다 낮다.
상세 정리- 서비스 맥락: 대출과 투자를 연계해 대출자에게는 대출 기회를, 투자자에게는 새로운 투자 상품을 제공하며, 대출자의 신용을 평가해 대출 조건을 결정한다.
- 신용평가의 정의: 전문성과 객관성을 갖춘 평가기관이 채무자가 만기까지 원리금을 상환할 수 있는 능력을 측정해 등급으로 나누어 운용하는 체계다.
- 평가 구성: 모형과 전략, 그리고 심사자에 의한 심층 심사 과정으로 이뤄지며 이 글은 그중 모형을 다룬다.
- 데이터 출처: 금융거래정보로 신용도를 평가하는 CB의 데이터를 구매하거나 받아 모델과 전략을 만들고, 최근에는 앱 로그와 마이데이터로 이뤄진 대안 데이터도 활용한다.
- CB 데이터의 구성: 기본 신상 정보, 대출 정보, 연체 정보, 카드 정보를 포함하며 CB가 자체 개발한 지표도 있다.
- Special Value 예시 해석: 신용카드기관수가 2개 미만일 때 값을 특수 처리하는데, 기관수가 0이면 총한도금액합계도 0이 되어 다른 Special Value에 걸리므로 실제로는 1개인 경우에만 해당한다.
- 전처리 1 스케일링: Neural Network 기반 모형은 큰 값을 처리할 때 기울기 증폭 문제가 생길 우려가 있어 Min Max Scaling을 사용했다.
- 전처리 2 Special Value 인코딩: Special Value가 둘이라면, 어디에도 속하지 않으면 원래 값을 스케일링한 값 v를 넣어 (v, 0, 0)으로, 첫 번째에 해당하면 (0, 1, 0)으로, 두 번째면 (0, 0, 1)로 인코딩했다.
- 전처리 3 범주형 변수: Categorical Feature는 One Hot Encoding으로 처리했다.
- Logistic Regression의 성격: 종속 변수가 두 범주로 나뉘는 데이터를 분석하는 확률 모델로, 독립 변수의 선형적 결합으로 종속 변수를 설명하는 회귀 분석에 속한다.
- 모델 구축은 변수 선택과 전처리, 모형 학습 단계로 구성된다고 정리한 뒤 시도해 본 머신러닝 모형들을 이어서 소개한다.
왜 읽나금융 도메인의 분류 모델을 다루는 데이터 사이언티스트에게, CB 데이터 특유의 Special Value 처리와 기간 변화에 견고한 변수 선택 절차를 실제 사례로 보여준다.