1. 공통점: Gradient Boosting 기반


2. 모델별 특징

모델 특징/장점 단점/제약
XGBoost - 가장 널리 쓰이는 "기본 부스팅"- 병렬처리, 과적합방지, 커스텀 손실함수 지원- 높은 성능, 범용성 - 설치 시 의존성 많음- 범주형 직접 지원X
LightGBM - XGBoost보다 더 빠름- 대용량/고차원 데이터에서 메모리/속도 강점- 결측치 자동처리, 범주형 변수 지원 - 소규모 데이터에선 오버슈팅(과적합) 위험
CatBoost - 범주형 변수 자동 인코딩(전처리 필요 거의 없음)- 튜닝이 간편, 실무자에 친화적- 적은 데이터도 안정적 - 설치 무겁고, 드물게 느릴 수 있음

3. 어디서/언제 사용하나?

상황 추천 모델 설명
대용량/고차원/복잡/실무 LightGBM, XGBoost 속도, 성능, 대규모 데이터에 강함
범주형 변수(카테고리컬) 많음 CatBoost, LightGBM 원본 범주형 자동 지원
실무 예측/대회(정확도 최우선) XGBoost, LightGBM, CatBoost Kaggle 등에서 성능 1위권
결측치가 많은 데이터 LightGBM, CatBoost 자동 결측치 처리
빠른 실험, 손쉬운 튜닝 CatBoost 파라미터 튜닝 쉬움
파이썬/싸이킷런과 연동 필요 XGBoost, LightGBM API가 scikit-learn과 호환

4. 주요 파라미터

파라미터 XGBoost LightGBM CatBoost 설명/공통기능
n_estimators O O O 트리(부스팅) 개수
learning_rate O O O 학습률
max_depth O O O 트리 최대 깊이
subsample O O O 학습에 쓸 샘플 비율
colsample_bytree O O (feature_fraction) O (rsm) 트리별 사용할 특성 비율
min_child_samples - O O (min_data_in_leaf) 리프 노드 최소 샘플수
min_child_weight O - - 리프 노드 최소 가중치
gamma O - - 분할 위해 필요한 최소 손실 감소
reg_alpha/lambda O O O L1/L2 정규화
cat_features - O O 범주형 변수 지정
objective O O O 손실 함수 (회귀/분류 등)
random_state O O O 시드, 결과 고정

각 모델 import 예시


from xgboost import XGBClassifier, XGBRegressor
from lightgbm import LGBMClassifier, LGBMRegressor
from catboost import CatBoostClassifier, CatBoostRegressor


초기화 및 사용 예시


# XGBoost
model = XGBRegressor(n_estimators=200, learning_rate=0.05, max_depth=6)

# LightGBM
model = LGBMRegressor(n_estimators=200, learning_rate=0.05, max_depth=6)

# CatBoost
model = CatBoostRegressor(iterations=200, learning_rate=0.05, depth=6, cat_features=[0,2,3])

model.fit(X_train, y_train)
y_pred = model.predict(X_test)