Lending Club, 머신러닝으로 신용을 평가하다(상)

Lewi Kim
11 min readAug 11, 2021

--

“기계로 사람을 탐구하는 기술”

사람을 신뢰할 수 있을가의 여부는 각자의 기준에 따라 다르기 마련입니다. 그러나 재정 문제에 있어서는 모두가 인정할 수 있는 기준을 제시해야 한다는 것에 고개를 끄덕이겠죠. 통계적 관점이 아니라 상식적인 관점에서 보아도 사람에게 자금을 빌려줄 때는 사람의 성격, 됨됨이, 행동반경과 같은 일반적 정보보다는 평소 소비습관은 어떤지, 돈거래 규모는 어떻게 되는지, 재정상태는 절박한지 여유있는지 등의 철저한 금융 위주의 정보로 판단하는 것이 이성적입니다. 친하지만 도저히 돈거래는 용납 못하는 사람과 멀지만 큰 돈도 믿고 맡길 수 있는 사람을 나누는 기준, 여러분도 다들 있으시죠?

최초의 P2P (Peer-to-Peer), 개인 간 대출기관이자 미국 핀테크 회사 Lending Club은 150여개의 대표적인 변수들을 모두 담아 개개인의 신용을 평가하는 일을 해냈습니다. 흔히 신용평가제도, CSS(Credit Scoring System)이라고 하죠. AutoML의 힘을 빌려서 ‘머신러닝 예측모델’이라는 개념을 도입하자 금융정보를 입력하면 신용가능여부가 똑 떨어지는 재밌는 결과를 얻게 됩니다.

사람의 신용평가를 기계로 한다고?

알고보면 사람보다 훨씬 이성적이라는 것이 함정….사람은 머리보단 가슴을 따르잖아?

체납 여부를 미리 예측해 회사의 손실을 낮춰볼까? 하는 발상에서 시작된 Lending Club의 프로젝트는 8천 3백만 달러라는 큰 재정 절감효과를 가져왔습니다. (950억원??!!! 저라도 투자하겠..) 머신러닝에 대한 지식이 부재한 경우라면 이러한 기계의 알고리즘이 신기할 수밖에 없을텐데요, 정확히 어떤 과정을 거친 것인지 알아봅시다.

“네 금융관련 정보를 입력하면 네가 믿을만한지 아닌지를 알려주노라”

‘머신러닝 기법을 사용해 고객의 대출 체납 여부를 예측해준다’.

지도학습을 통해 가능한 일입니다.

머신러닝 방식에는 ‘지도학습’과 ‘비지도학습’, 그리고 ‘강화학습’이 있습니다.

머신러닝 학습의 종류

지도학습(Supervised Learning)은 “아는 것을 바탕으로 미래를 예측한다”는 학습법입니다. 입력변수와 목표변수가 존재하며 이것이 한 세트가 되어 훈련 데이터로서 학습을 거칩니다. 이후 올바른 답이 나오도록 컴퓨터를 학습시키는 것이 지도학습입니다. 한 마디로 똑똑한 학생이 배운 바를 이용해 알던 문제를 풀어내는 경우라 생각하시면 됩니다. 전형적인 지도학습으로는 분류회귀가 있습니다. 해당 렌딩클럽 사례에서는 분류를 활용해볼 것입니다. 뒤에서 더 자세히 설명드릴게요.

사진 출처: https://blogsabo.ahnlab.com/2605

비지도학습(Unsupervised Learning)은 “알던 것을 바탕으로 모르는 변수를 예측한다”는 것입니다. 입력변수만 있고 목표변수는 없는 것이 특징입니다. 정답이 없으므로 보이는 패턴을 통해 답을 찾아내는 학습법이죠. 가끔씩 하나를 알려주면 열을 아는 수재가 나오죠? 그런 흔치 않은 경우를 떠올리시면 이해가 쉬우실 겁니다. 대표적인 비지도학습법으로는 군집(클러스터)분석, 주성분 및 요인분석, 연관성 분석 등이 있습니다. 어렵지만 이번 사례에는 필요하지 않은 지식이니 가볍게 이 정도만 보더라도 무방합니다.

사진 출처 : 위와 동일

강화학습(Reinforcement Learning)은 기계에게 과제를 준 후 현재 상태에서(State) 특정 행동(Action)을 취했을 때 최대의 보상(Reward)을 얻도록 학습시킵니다. 지도학습, 비지도학습에 비해 난이도가 높습니다. 보상과 벌을 통해 점점 진화하는 게임을 예시로 떠올리시면 됩니다. 2016년 3월에 있었던 알파고와 이세돌의 세기의 대결을 기억하시나요? 구글 딥마인드(Deepmind)가 만든 인공지능 알파고에 사용된 기계학습법이 바로 강화학습입니다.

사진 출처 : 위와 동일

모두들 셀로 빽빽히 차있는 엑셀 시트에 숫자를 하나하나 입력하며 파일을 만들어보신 경험이 있을 겁니다. 이 파일을 머신러닝 예측모델에 적용하면 ‘주소’, ‘6개월간의 소비습관’, ‘연간소득’ 등의 입력변수 가운데 사람의 대출 상환 여부와 가장 큰 연관성을 가진 요인까지 알 수 있습니다. 앞으로 어떤 변수들을 넣어 알고리즘을 적용했는지, 그 과정을 어떻게 거쳤는지, 결과값은 어떻게 나왔는지를 알아보겠습니다. 이어서, (하)편에서는 직접 아일리스의 다빈치랩스를 돌려보며 데이터 활용 예시를 직접 보여드릴게요.

사람의 대출 신용도를 알아보다

어떤 변수들을 넣어 어떤 타겟을 산출해야 평가를 잘했다고 소문이 날까

지도학습을 단적으로 설명해주는 그림 (분류), 출처: https://www.enjoyalgorithms.com/blog/classification-of-machine-learning-models

신용 평가의 플로우를 이해하기 위해서는 ‘지도학습’에 대한 지식이 필요합니다. 머신러닝의 학습 기법 중 하나에 해당하는 ‘지도학습’은 위의 그림에 직관적인 내용으로 나타나 있습니다. 한마디로 정의된 내용을 기계에 학습시키고, 그 후 비슷한 과제를 주는 겁니다. 이미 배운 내용을 기억하는 기계는 같은 방식으로 새 데이터를 정의할 것이고, 학습된 내용을 바탕으로 결과값을 내게 됩니다. 앞선 설명을 참고해 덧붙이면, 똑똑하지만 수동적인 학생을 떠올리시면 이해에 도움이 되실까요?

지도학습에 엑셀 파일 형식을 입력시켜 학습시킨 모델은 얼마든지 같은 플로우로 모델 작업을 실행할 수 있습니다. 렌딩클럽의 데이터를 가지고 실리콘 밸리의 유~명한 오픈소스 및 소프트웨어 회사, H20.ai가 자동 기계학습 모델링을 시도합니다.

H20.ai: 오픈소스 소프트웨어 회사가 기존 데이터를 활용한 방식을 알고 들어갑시다~

렌딩클럽은 그동안의 사용자들의 ‘체납 여부’를 통해 행동 패턴을 정의하였습니다. 입력한 수많은 금융정보를 취합해 과연 사용자가 대출금을 완납했는지, 그렇지 않았는지를 발판 삼아 미래의 사용자들의 행동을 예측해본 것이죠.

한마디로, 렌딩클럽 머신러닝 예측모델의 타겟 변수(종속변수이자 산출하고자 하는 결과값)는 ‘체납 여부(loan status)’입니다.

타겟변수인 체납 여부는 두 가지 형태로 기록됩니다. ‘완납(Fully Paid)’ 혹은 ‘감가상각 처리(Charged Off)’, 즉 채무 이행과 채무 불이행 두 경우로 나뉘는 것이죠. ‘감가상각 처리’란 채권자가 채무자에게 돈을 돌려받기를 포기했다는 뜻입니다. 채권자 입장에서 손실을 떠안게 되므로 전적 손해입니다. 궁극적으로 이 경우를 최소화하기 위해 시작한 과제라고 보아도 무방할 것입니다.​

A는 수술비에, B는 인테리어 공사에 필요한 자금을 렌딩클럽에서 대출받습니다.
A는 성실하게 대출금을 갚지만 B는 지속적 요구에도 돈을 갚지 않습니다.
이후 렌딩클럽이 고객의 거래정보를 데이터로 정리할 때 A를 Fully Paid(완납)으로, B를 Charged Off(감가상각 처리)로 기록합니다.

‘완납’과’ 감가상각 처리’ 외에도 ‘현재 대출금 상환 중(Current)’, ‘연체(Late)’ 등 더 많은 결과가 있지만, 두 경우로 변수를 제한해 결과값 도출 과정을 간소화했습니다. 독자들의 이해가 쉽도록 간단한 데이터 가공이 들어갔다고 보시면 됩니다.

그렇다면 입력한 수많은 변수들은 어떤 걸까요? 입력 변수들은 150여가지로 너무 많기 때문에 대표적인 몇 가지만 알아보겠습니다.

하나의 입력변수는 연간 소득(annual income)입니다. 그 밖에도 보유 계좌 수(open account), 최근 2년간의 체납 계좌 수, 총 잔고(total balance), 대출 이자율(interest), 집의 소유형태( 렌트/자가/담보대출) 등등이 있습니다. zip code, member_id와 같은 단순 개인정보도 보이시나요? 이러한 지표를 모두 담은 하나의 CSV 파일이 모델링에 사용됩니다.

엑셀 파일에 칼럼별로 정리한 재정 관련 자료들! loan_status가 바로 구하고자 하는 값이지

Lending Club 오픈 데이터의 특이한 점은 대출을 good loan, bad loan 으로 나눴다는 것입니다. 예측 전에 미리 한 번 가볍게 상황을 두 경우로 구분해보자는 것이죠. 신용이 좋은 편이거나 채무를 이행한 경우에는 good loan(is_bad=”No”), 그렇지 않은 경우 bad loan(is_bad=”Yes”)이라는 라벨을 부여해 학습과정을 원활하게 하고자 한 부분이 있습니다. 이 입력변수는 (하)편의 상관관계 차트에서 진가를 발휘하게 됩니다.

이 파일을 머신러닝 예측모델에 넣으면, 기계는 지도학습을 통해 ‘연간소득과 대출이자율, 평소 씀씀이가 이 정도 되는 사람은 완납을 하는구나’ 식으로 결론을 내립니다. 따라서 이후의 새 고객의 체납여부도 짐작할 수 있게 되는 것이죠. 굉장히 직관적인 발상이죠?

머신러닝 모델을 돌려본 결과:

목표한 결과값뿐만 아니라 변수상관성도 덤으로 알려드려요~

H20.ai는 H20–3 AutoML이라는 예측모델을 사용합니다. XGBoost, GLM, Deep Learning, GBM 등의 다양한 알고리즘을 제공하는 가운데, 가장 높은 정확성을 띄는 건 무엇일까요?

출처: https://www.h2o.ai/blog/building-ai-ml-models-on-lending-club-data-with-h2o-ai-part-2/

Stacked 앙상블 모델이 가장 높은 auc를 자랑하는 것으로 보아 이 모델에 제일 적합한 것으로 보입니다. AUC란 Area Under the Curve로, 통계학적 관점에서 봤을 때 1에 가까울수록 분류가 잘 되었음을 증명하는 지표입니다.

가장 적합한 Stacked ensemble 알고리즘을 통해 이렇게 새 입력값의 목표변수를 도출 할 수 있었죠.

stacked ensemble 알고리즘을 적용한 예측값: 다행히 10명 모두 채무 이행을 한다고 나오네요 Bravo!

알고리즘 추천뿐만 아니라 입력 변수들 중 상관성이 높은 것도 알 수 있다고 했던 것, 기억하시나요?

“기계학습 모델은 목표 변수와 가장 친한 입력 변수도 알려준다구!”

파란색은 양의 상관성, 주황색은 음의 상관성을 나타냅니다. 출처 : 위 그림과 동일

위의 그래프는 H2O GLM 모델을 통해 분석한 변수의 상관성입니다. 보아하니 이자율이 높을수록, 신용등급(grade)이 낮을수록, 체납 계정이 많을수록, 주택 담보대출이 아닌 임대 개념일 때 채무 불이행이 도드라진다는 점을 알 수 있네요. 반대로 채무자가 담보대출을 받고, 신용 등급이 높고, 신용 한도가 높을 때 완납 확률이 올라간다는 것도 알 수 있습니다. 이 중 채무 불이행과 가장 밀접한 연관성을 지닌 변수는 ‘int_rate’,즉, 이자율이라는 걸 알 수 있겠네요. 이렇게 상관변수 또한 파악할 수 있다는 점, 굉장히 유용하죠?

이번에는 Lending Club의 데이터가 어떻게 구성되어있는지를 핵심적으로 파악하고, H20.ai의 머신러닝 모델을 통해 어떤 알고리즘으로 데이터를 분석했는지를 알아보았습니다. 다음에는 같은 데이터를 아일리스의 지도학습 예측모델 다빈치랩스를 직접 구현하는 과정과 그 결과를 살펴보겠습니다!

--

--