Tan Kim

xgboost

XGBoost

개요

eXtreme Gradient Boosting의 약자. 정형(tabular) 데이터에서 가장 강력한 ML 모델 중 하나로, Kaggle 등 데이터 대회에서 오랫동안 정상을 차지한 알고리즘.

  • 기반: 결정 트리(Decision Tree)의 앙상블 (Gradient Boosting)
  • 특징: 속도와 성능의 균형, 높은 해석 가능성
  • 공개처: pip install xgboost

핵심 원리: Gradient Boosting

약한 모델(결정 트리) 여러 개를 순차적으로 학습하되, 이전 모델이 틀린 부분을 다음 모델이 보완하는 방식.

예측값 = 트리1 + 트리2 + 트리3 + ... (각 트리는 잔차를 줄이는 방향으로 학습)

XGBoost의 차별점

  • 정규화(L1/L2) 내장 → 과적합 방지
  • 결측값 자동 처리
  • 병렬 학습 지원 (CPU/GPU)
  • 조기 종료(Early Stopping) 지원

기본 사용법

import xgboost as xgb
from sklearn.model_selection import train_test_split
 
X_train, X_test, y_train, y_test = train_test_split(X, y)
 
model = xgb.XGBClassifier(
    n_estimators=300,
    max_depth=6,
    learning_rate=0.1,
    subsample=0.8,
)
model.fit(X_train, y_train, eval_set=[(X_test, y_test)], early_stopping_rounds=20)

주요 하이퍼파라미터

파라미터 설명 권장 범위
n_estimators 트리 개수 100~1000
max_depth 트리 최대 깊이 3~8
learning_rate 학습률 0.01~0.3
subsample 샘플링 비율 0.6~1.0
colsample_bytree 피처 샘플링 비율 0.6~1.0

이커머스 판매 예측 활용

입력 피처: 카테고리, 가격, 이미지 수, 리뷰 수, 경쟁 상품 수, 시즌 등
출력: 판매량 예측 (회귀) or 판매 등급 (분류: 상/중/하)
  • 피처 중요도(Feature Importance) 제공 → 어떤 요소가 판매에 영향을 미치는지 파악 가능
  • 데이터 수천 건부터 효과적

LightGBM과 비교

항목 XGBoost LightGBM
학습 속도 보통 빠름
메모리 효율 보통 높음
대용량 데이터 가능 더 적합
안정성/성숙도 매우 높음 높음
첫 시도 추천

관련 개념

  • LightGBM