피드로 돌아가기
How I Reached Top 8% on Kaggle with a Ridge-XGBoost N-gram Pipeline
Dev.toDev.to
AI/ML

Kaggle 고객 이탈 예측 경진대회에서 N-gram 범주형 특성 조합과 Ridge-XGBoost 앙상블로 상위 8% 달성

How I Reached Top 8% on Kaggle with a Ridge-XGBoost N-gram Pipeline

Fais Azis Wibowo2026년 3월 29일4intermediate

Context

기존 LightGBM 단일 모델은 594,000개 행의 범주형 데이터에서 개별 특성만 학습했다. 실제 이탈 신호는 계약 유형, 인터넷 서비스, 결제 방식 같은 여러 범주의 조합에 숨어 있었으나 표준 접근법으로는 이를 포착하지 못했다.

Technical Solution

  • 범주형 특성을 텍스트 토큰처럼 취급해 2-way, 3-way 조합 생성: 계약 유형과 인터넷 서비스 조합처럼 관계 패턴을 명시적 특성으로 인코딩
  • 중첩 5-fold 목표 인코딩 적용: 각 fold를 다른 fold의 목표 통계로만 인코딩해 target leakage 방지
  • 서비스 조합 개수 특성 추가: 인터넷 서비스 개수, 전화 부가서비스 개수 및 교집합을 수치형으로 계산
  • 연속형 특성에서 자릿수 분포 특성 추출: tenure와 MonthlyCharges 값의 분포 패턴을 추가 특성으로 활용
  • 2단계 앙상블 구축: Ridge 분류기(10-fold 교차검증 OOF 예측 생성) → XGBoost 분류기(원본 특성 + Ridge OOF 예측으로 학습)

Impact

공개 리더보드 ROC-AUC 0.91685 달성으로 3,718명 중 286등(상위 8%)에 도달했다.

Key Takeaway

범주형 데이터에서 상호작용 패턴이 중요할 때는 개별 특성 대신 조합 특성에 집중해야 한다. 또한 단순한 모델의 출력을 메타 특성으로 재사용하는 스태킹은 모델 복잡도 증대보다는 분산 감소를 목표로 설계할 때 실질적 효과를 발휘한다.


범주형 특성이 주를 이루는 이진 분류 문제(이탈 예측, 사기 탐지)에서 N-gram 조합 특성 엔지니어링을 적용하면 개별 특성만 사용한 baseline 모델 대비 AUC 개선을 기대할 수 있다. 중첩 k-fold 목표 인코딩으로 training-validation 메트릭 괴리를 줄일 수 있으며, 정규화된 선형 모델(Ridge)의 OOF 예측을 XGBoost 입력 특성으로 추가하면 과적합 위험을 낮추면서 비선형 상호작용을 포착할 수 있다.

원문 읽기