← 로그

자영업자 조기경보 AI v2: Recall 68%에서 86%로

카드 거래 데이터로 폐업 위험을 3~6개월 전에 예측. 47개 피처, 3개 모델 앙상블, Optuna, SHAP.

XGBoostLightGBMCatBoostSHAPOptuna피처엔지니어링앙상블

실제 카드 거래 데이터를 활용해 자영업자의 폐업 위험을 3~6개월 전에 예측하는 모델을 v2로 개선했다. v1 대비 핵심 지표가 이렇게 바뀌었다.

지표 v1 v2 개선
Accuracy 94.3% 97.2% +2.9%p
Recall 68.2% 85.7% +17.5%p
Precision 76.5% 89.3% +12.8%p
AUC-ROC 0.912 0.964 +0.052

조기경보 문제에서 중요한 건 Recall이다. 위험한 매장을 놓치면 경보 시스템의 의미가 없다. 그래서 v2는 “위험 매장을 얼마나 많이 잡아내는가”에 집중했다.

문제를 어떻게 구조화했나

매출 · 이용 · 고객 변동을 기반으로 Risk Score를 정의하고, 47개 피처를 설계했다.

  • 다중 기간 매출 분석: 1 · 3 · 6 · 12개월 추세를 동시에 본다. 단기 위기와 장기 하락을 모두 감지.
  • 고객 행동: 재이용률 변화, 신규 vs 기존 고객 비율, 연령/성별 구성 변화.
  • 계절성: 업종별 계절 매출 변동을 반영해 오경보(False Positive)를 줄였다.

모델

XGBoost + LightGBM + CatBoost 앙상블. 하이퍼파라미터는 Optuna로 자동 최적화하고, 클래스 불균형은 SMOTE로 처리했다. 단일 모델 대비 앙상블이 안정적으로 좋았고, 특히 계절성 피처가 들어간 뒤 Precision이 크게 올랐다.

해석 가능성

예측 결과를 현업이 쓰려면 “왜 위험한가”가 함께 나와야 한다. SHAP으로 상위 위험 요인의 기여도를 제시하도록 구성했다.

위험도: 78.5/100
등급: 높음
폐업 확률: 78.5%

주요 위험 요인:
  - 매출 감소 추세: 32.5점
  - 고객 수 감소: 25.8점
  - 재이용률 하락: 12.3점

간단한 API로 즉시 예측할 수 있게 감싸고, 모델은 Hugging Face에 배포했다.

배운 것

  • 지표를 하나 고르면 설계가 명확해진다. Recall을 목표로 두니 피처 · 샘플링 · 임계값 결정이 모두 같은 방향을 향했다.
  • 도메인 피처(계절성, 재이용률)가 모델 튜닝보다 더 큰 개선을 만들었다.
  • 설명 가능성은 부가 기능이 아니라 제품 요구사항이었다.

코드: github.com/5-Sin-e-Kait/early_warning_ai_v2