[기초] Part 3. 딥러닝이 안 통하는 데이터: 스코어링을 위한 머신러닝
신용 데이터는 표 형태입니다. 그리고 표 데이터에서는 화려한 딥러닝이 아니라 트리 기반 부스팅이 이깁니다. 성능으로 고르면 왜 트리가 최종 모델이 되는지, 로지스틱 회귀는 어째서 아직 사용되는지, 그리고 금융에서는 교차검증을 왜 다르게 해야 하는지를 정리했습니다.
Part 2에서 통계를 다졌으니, 이제 머신러닝에 들어갈 차례입니다. 신용에서도 모델은 결국 성능을 보고 고릅니다. 다만 신용에는 성능을 가르는 고유한 사정과, 성능 이외에 하나 더 검토해야 할 축이 있습니다.
성능을 가르는 가장 큰 요인은 데이터의 모양입니다. 신용 데이터는 표 형태입니다. 한 줄에 한 고객, 칸마다 소득이나 한도나 연체 횟수가 들어가는 정형 데이터죠. 그런데 표 데이터에서는, 이미지와 음성을 평정한 딥러닝이 의외로 힘을 못 씁니다. 대신 트리 기반 부스팅이 이깁니다.
Part 2 끝에서 두 가지를 예고했습니다. 왜 아직도 로지스틱 회귀가 현업에서 사용되는지, 그리고 금융에서는 교차검증을 왜 다르게 해야 하는지입니다. 여기에 두 가지를 더합니다. 현업에서 실제로 잘 쓰이는 게 왜 트리 모델인지, 그리고 모델을 고른 뒤에도 따라붙는 신용 특유의 제약은 무엇인지입니다.
표 데이터에서는 트리가 이깁니다
딥러닝은 지난 10년간 이미지, 음성, 자연어를 차례로 평정했습니다. 그래서 “좋은 데이터에 신경망을 크게 올리면 이긴다”는 인상이 생겼습니다. 그런데 표 형태의 정형 데이터에서는 이 인상이 잘 들어맞지 않습니다.
이유는 데이터의 성질에 있습니다. 이미지는 옆 픽셀끼리, 문장은 앞뒤 단어끼리 강한 구조가 있습니다. 딥러닝은 그 구조를 파고드는 데 강합니다. 반면 표 데이터의 칸들은 단위도 의미도 제각각이고, 그런 공간 구조가 없습니다. 게다가 신용 데이터는 이미지넷처럼 수백만 장씩 쌓이지도 않습니다. 이런 환경에서는 트리 기반 부스팅(XGBoost, LightGBM)이 더 잘 맞습니다. 변수마다 기준점을 잡아 잘라 나가는 방식이, 제각각인 칸들을 다루는 데 자연스럽기 때문입니다.
이건 경험만의 이야기가 아닙니다. 표 데이터를 두고 딥러닝과 트리를 정면으로 비교한 벤치마크 연구들이 같은 결론을 반복해서 냅니다. Tabular Data: Deep Learning is Not All You Need(Shwartz-Ziv & Armon, 2021)는 여러 데이터셋에서 XGBoost가 당시 제안된 딥러닝 모델들을 앞섰다고 보고했고, Why do tree-based models still outperform deep learning on typical tabular data?(Grinsztajn 외, 2022)는 45개 데이터셋에서 트리 계열이 중간 규모 표 데이터의 최신 기준선이라는 점을 보였습니다. 그래서 신용에서 성능을 보고 모델을 고르면, 결국 트리 부스팅이 최종 모델이 되는 경우가 아주 많습니다.
성능에서 우위가 없다는 것만이 이유는 아닙니다. 현업에서 블랙박스 모델은 그 자체로 리스크입니다. 왜 그런 판단을 내렸는지 설명하기 어렵고, 입력이 조금 달라질 때 어떻게 움직일지 가늠하기 어렵고, 검증과 거버넌스의 부담도 큽니다. 한 번의 큰 실수가 비싼 분야라, 신용은 이런 불투명함을 본능적으로 경계합니다. 트리도 완전히 투명한 모델은 아닙니다. 다만 트리는 성능이라는 값을 치르고, SHAP나 피처 임포턴스로 설명을 붙여 그 불투명함을 어느 정도 상쇄합니다. 딥러닝은 표 데이터에서 그 대가마저 없이 더 깜깜한 상자를 들이는 셈이라, 리스크 대비 얻을 것이 마땅치 않습니다.
딥러닝이 신용에서 아예 쓸모없다는 말은 아닙니다. 다만 그 자리는 코어 스코어링 모델이 아니라 비정형 부가 데이터 쪽입니다. 상담 텍스트나 거래의 시퀀스 같은 것에서 특징을 뽑아 본 모델에 넘기는 식이죠. 표로 정리된 핵심 변수들을 두고 신경망을 전면에 세울 이유는, 적어도 지금은 잘 보이지 않습니다.
로지스틱 회귀가 살아남은 이유
성능만 보면 트리로 기울지만, 로지스틱 회귀가 사라진 것은 아닙니다. 다만 그 이유는 성능이 아니라 설명입니다.
어떤 영역에서는 모델이 그 자체로 해석 가능해야 합니다. 거절 사유를 법으로 고지해야 하는 심사, 감독당국이 계수 하나하나를 들여다보는 규제자본 모델 같은 자리입니다. 여기서는 계수가 곧 설명이 되는 로지스틱 회귀와, 그것을 점수로 옮긴 스코어카드가 여전히 강하게 선호됩니다. 단조성을 강제할 수 있고, 출력이 안정적이고, 사유 고지가 자연스럽기 때문입니다.
트리를 최종 모델로 쓸 때는 이 설명을 사후에 만듭니다. 피처 임포턴스로 어떤 변수가 중요한지 보고, SHAP로 개별 예측에서 각 변수가 얼마나 기여했는지를 뽑아 거절 사유로 옮기는 식입니다. 실무에서 통용되는 방식이고, 그래서 트리를 쓰면서도 설명 요구를 맞춥니다. 다만 사후 설명은 모델 자체가 아니라 모델을 들여다본 해석이라, 사유의 안정성과 충실도를 따로 점검해야 하는 부담이 남습니다.
정리하면 모델 선택은 두 축의 거래입니다. 성능으로는 트리가 앞서고, 그 자체로 해석되어야 하는 자리에서는 로지스틱 회귀가 앞섭니다. 대부분의 실무는 이 사이 어딘가에서, 성능과 설명 요구를 저울질해 고릅니다.
검증은 미래로 해야 합니다
여기서부터가 Part 2에서 예고한 두 번째 약속입니다. 신용에서는 교차검증을 다르게 해야 합니다.
일반적인 k-fold 교차검증은 데이터를 무작위로 섞어 여러 조각으로 나누고, 돌아가며 한 조각을 검증에 씁니다. 그런데 신용에서 이렇게 무작위로 섞으면 미래가 과거로 새어 들어갑니다. 2024년 고객과 2025년 고객을 섞어 학습하면, 모델은 미래를 조금 본 채로 평가받는 셈입니다. 그런데 실제 배포는 늘 미래에 합니다. 학습은 과거 데이터로 하고, 적용은 아직 오지 않은 신규 고객에게 합니다.
그래서 신용의 검증은 시간을 존중해야 합니다.
- Out-of-time 검증: 과거 일정 시점까지로 학습하고, 그 이후 기간으로 검증합니다. 모델이 본 적 없는 미래에서 얼마나 버티는지를 봅니다.
- 성능창을 지킵니다: Part 1에서 본 것처럼 부도는 한참 뒤에야 확정됩니다. 아직 결과가 무르익지 않은 최근 고객을 정답처럼 쓰면 그것이 leakage입니다.
- 같은 고객은 한쪽에만: 한 고객의 기록이 학습과 검증에 동시에 들어가면, 모델은 사실상 정답을 외운 셈이 됩니다.
과적합 이야기도 결국 같은 곳으로 모입니다. 신용에서 과적합이 무서운 이유는 무작위 홀드아웃에서는 티가 잘 안 나기 때문입니다. 진짜 시험은 시간이 지나고 모집단이 움직인 뒤에 옵니다. Part 0에서 “검증 지표는 좋은데 실전에서 무너진다”고 한 이야기의 가장 흔한 원인이 바로 시간을 무시한 검증입니다. 트리든 로지스틱 회귀든, 정규화로 모델을 단순하게 누르고, 변수를 욕심내지 않고, 검증을 미래로 미뤄두는 습관이 성능 한 줄보다 오래갑니다.
피처 엔지니어링이 현업의 8할입니다
모델 종류를 정하고 나면, 실제로 성능을 가르는 것은 알고리즘이 아니라 변수입니다. 현업의 가치는 피처 엔지니어링에 8할이 있다는 말이 신용에서는 특히 잘 맞습니다. 트리를 쓰든 로지스틱 회귀를 쓰든 마찬가지입니다.
좋은 변수는 도메인에서 나옵니다. Part 1에서 본 카드 비즈니스의 구조가 그대로 변수가 됩니다. 한도 대비 사용액의 비율, 최근 몇 달간의 연체 추세, 입금의 규칙성, 잔액이 한도에 닿는 빈도 같은 것들입니다. 원자료 한 줄보다 비율과 추세와 최근성으로 가공한 변수가 부도와 더 잘 이어집니다.
그리고 여기서도 설명이라는 축이 따라옵니다. 사유를 고지해야 하는 자리라면, 가능하면 단조적이고 뜻이 분명한 변수를 선호합니다. 부도 방향과 상식적으로 이어지는 변수라야 모델이 안정되고, 나중에 사유를 설명하기도 쉽습니다. 자동으로 찍어낸 변수 수천 개보다, 뜻이 분명한 변수 수십 개가 신용에서는 더 오래갈 때가 많습니다.
불균형, 그런데 함부로 손대지 마세요
마지막은 불균형입니다. Part 2에서 부도는 보통 1~5%의 희귀 사건이라고 했습니다. 그러다 보니 일반적인 머신러닝 조언은 “소수 클래스를 늘려라”는 쪽으로 향합니다. 오버샘플링이나 SMOTE 같은 것들입니다. 그런데 신용에서는 여기서 한 박자 멈춰야 합니다.
문제는 캘리브레이션입니다. 모델이 트리든 로지스틱 회귀든, 데이터를 인위적으로 절반씩 맞추면 순위 능력은 비슷할지 몰라도 출력하는 확률이 실제 부도율에서 멀어집니다. Part 1에서 EL = PD × LGD × EAD를 봤는데, 여기서 PD는 확률 그 자체가 정확해야 합니다. 샘플링으로 비율을 흔들면 그 확률이 부풀려지고, EL을 계산하고 가격을 매기는 순간 어긋나기 시작합니다.
그래서 신용에서는 불균형을 다룰 때 데이터를 함부로 다시 뽑기보다, 클래스 가중치로 다루거나, 원래 비율을 유지한 채 학습하고 마지막에 확률을 보정하는 쪽을 자주 택합니다. 희귀 사건이라는 사실 자체가 정보인데, 그것을 지워버리면 안 됩니다.
AutoML이 도입되어도 남는 일
최근 금융권에도 AutoML이 활발히 도입되고 있습니다. 모델 후보를 자동으로 돌려보고, 하이퍼파라미터를 튜닝하고, 변수 가공의 일부까지 자동화해 주는 도구들입니다. 모델링의 기계적인 부분을 크게 줄여주는 것은 분명합니다. 그러면 지금까지 이야기한 것들은 곧 필요 없어지는 걸까요. 오히려 반대입니다. 자동화가 걷어가는 것은 단순 작업이고, 남는 것은 이 글이 내내 강조한 판단들입니다.
먼저, 효과적인 변수는 여전히 사람이 만듭니다. AutoML은 주어진 변수로 최적의 모델을 찾아주지만, 어떤 변수를 줄지는 정해주지 못합니다. “한도 대비 사용액이 최근에 어떻게 변했는가” 같은 변수는 카드 비즈니스를 알아야 떠오르는 가설입니다. 도메인에서 가설을 세우고 그것을 변수로 빚는 일, 피처 엔지니어링의 8할은 자동화 바깥에 있습니다. 좋은 변수를 넣지 않으면 아무리 좋은 자동 탐색도 그 위에서 맴돌 뿐입니다.
다음으로, 제약을 아는 사람이 모델을 골라야 합니다. AutoML은 보통 정확도 같은 한 지표를 최대로 만드는 방향으로 움직입니다. 그런데 신용에서는 가장 높은 점수를 낸 모델이 설명할 수 없거나, 확률이 틀어져 있거나, 규제에 걸려 그대로는 못 쓰는 경우가 많습니다. 단조성을 강제할지, 어떤 모델을 어디까지 허용할지, 확률을 어떻게 보정할지는 제약을 이해하는 사람이 정합니다.
마지막으로, 결과를 해석하고 제대로 검증하는 일이 남습니다. AutoML이 내놓은 모델을 SHAP로 들여다보고 사유로 옮기는 것도, 그 점수가 진짜인지 의심하는 것도 사람의 몫입니다. 특히 검증이 그렇습니다. 많은 자동화 도구가 기본값으로 무작위 교차검증을 씁니다. 그런데 앞에서 봤듯이 신용에서 무작위로 섞으면 미래가 과거로 새어, 실전보다 좋아 보이는 점수가 나옵니다. 도메인에 맞는 검증을 모르면, AutoML이 건넨 장밋빛 숫자에 그대로 속을 수 있습니다.
그래서 자동화는 바닥을 높여주지, 판단을 대신해주지 않습니다. 가설을 세워 변수를 만들고, 제약 속에서 모델을 고르고, 결과를 해석하고 정직하게 검증하는 일. 이 글이 다룬 것이 정확히 그 자리입니다.
정리
신용의 머신러닝도 성능을 보고 모델을 고릅니다. 다만 그 결론이 일반적인 직관과 다릅니다.
- 신용 데이터는 표 형태이고, 표에서는 딥러닝이 아니라 트리 부스팅이 이깁니다. 성능으로 고르면 트리가 최종 모델이 되는 경우가 많습니다.
- 딥러닝은 표 데이터에서 성능 우위가 없는 데다, 블랙박스라 리스크도 큽니다. 그 자리는 코어 스코어링이 아니라 비정형 부가 데이터입니다.
- 로지스틱 회귀는 성능이 아니라 설명 때문에 남습니다. 그 자체로 해석되어야 하는 자리의 기본입니다. 트리를 쓸 때는 SHAP 같은 사후 설명으로 그 요구를 맞춥니다.
- 검증은 미래로 합니다. 무작위로 섞지 않고, 시간을 존중하고, 같은 고객을 양쪽에 넣지 않습니다.
- 성능을 가르는 것은 알고리즘보다 변수이고, 좋은 변수는 도메인에서 나옵니다.
- 불균형은 함부로 손대지 않습니다. 확률을 지켜야 합니다.
- AutoML이 들어와도, 가설로 변수를 만들고 제약 속에서 모델을 고르고 결과를 해석하고 검증하는 일은 사람의 몫으로 남습니다.
모델 종류보다, 그 모델을 둘러싼 검증과 제약이 신용의 머신러닝을 가릅니다.
다음 Part 4에서는 모델을 실제로 만드는 과정으로 들어갑니다. 로지스틱 회귀를 스코어카드로 옮기는 표준 공정, 그러니까 WOE와 IV로 변수를 가공하고 로그오즈를 점수로 스케일링하고 확률을 캘리브레이션하는 흐름을 중심으로 보겠습니다. 이번 글이 “무엇을 고르나”였다면, 다음 글은 “어떻게 만드나”입니다.