비교 질문

두 모델 모두 강력한 gradient boosting 계열이지만, 범주형 변수 처리와 트리 성장 방식이 다르다. 이번 실험의 질문은 “어떤 모델이 항상 우수한가”가 아니라 데이터 조건에 따라 차이가 어디서 발생하는가다.

실험 설계

동일한 train/validation split과 동일한 조기 종료 기준을 사용한다. metric은 ROC-AUC와 log loss를 함께 기록하고, 학습 시간과 추론 시간도 측정한다.

from lightgbm import LGBMClassifier
from catboost import CatBoostClassifier

lgbm = LGBMClassifier(n_estimators=2000, learning_rate=0.03)
cat = CatBoostClassifier(iterations=2000, learning_rate=0.03, verbose=False)

범주형 변수 처리

CatBoost는 ordered target statistics를 이용해 target leakage를 줄이면서 범주형 변수를 수치화한다. LightGBM도 categorical feature를 직접 다룰 수 있지만 데이터 타입과 category 인코딩을 명시적으로 관리해야 한다.

트리 성장 방식

LightGBM의 leaf-wise 성장은 손실 감소가 가장 큰 leaf를 우선 분할한다. 빠르게 복잡한 패턴을 잡지만 작은 데이터에서는 과적합 가능성이 있다. CatBoost의 대칭 트리는 같은 깊이에서 동일한 분할 조건을 사용해 추론이 빠르고 규제가 강한 편이다.

관찰 결과

고유값이 많은 범주형 변수가 늘어날수록 CatBoost의 기본 설정이 안정적이었다. 수치형 변수가 중심이고 충분한 튜닝 예산이 있는 경우 LightGBM이 더 빠르게 좋은 성능에 도달했다.

기본 설정의 승패보다 전처리 비용, 튜닝 예산, 재현성까지 포함한 전체 실험 비용을 비교해야 한다.

다음 실험

다음에는 시간 기반 split에서 범주 통계가 얼마나 안정적으로 유지되는지, 희귀 범주의 처리 방식이 calibration에 어떤 영향을 주는지 확인할 예정이다.