그래디언트 부스팅(Gradient Boosting) 모델은 앙상블 학습(Ensemble Learning) 알고리즘의 한 종류로, 약한 학습기(주로 결정 트리)를 여러 번 학습하여 예측 성능을 점진적으로 향상시키는 방식입니다. 부스팅 기반의 앙상블 학습 방식을 사용하여 고성능을 발휘하며, 데이터 과학과 머신러닝 분야에서 분류(Classification)와 회귀(Regression) 문제를 해결하는 데 널리 사용됩니다.
1. XGBoost (Extreme Gradient Boosting)
- 주요 특징:
- 병렬 처리: 병렬 컴퓨팅을 통해 학습 속도를 크게 향상.
- 정규화: L1, L2 정규화(Regularization)를 제공해 과적합 방지.
- Tree Pruning: 트리 성장을 사후(prune after growth) 방식으로 관리하여 효율적 트리 생성.
- Custom Objective: 사용자 정의 손실 함수 지원.
- 장점:
- 대규모 데이터셋에서 높은 성능.
- 명확한 하이퍼파라미터 튜닝 옵션.
- 단점:
- 메모리 소비가 크고, 데이터셋 크기에 따라 학습 시간이 길어질 수 있음.
- 공식 문서 : https://xgboost.readthedocs.io/en/latest/?utm_source=chatgpt.com
2. LightGBM (Light Gradient Boosting Machine)
- 주요 특징:
- 리프 중심 트리 성장(Leaf-wise growth): 트리의 균형보다 손실 감소에 집중해 학습 속도와 예측 성능 향상.
- Histogram-based Splitting: 연속형 변수를 히스토그램으로 변환하여 메모리 사용량 감소.
- 대규모 데이터 지원: 10,000개 이상의 특징(feature) 또는 수백만 개의 샘플 처리에 강점.
- 장점:
- 빠른 학습 속도와 적은 메모리 소비.
- 높은 정확도.
- 단점:
- 소규모 데이터셋에서는 과적합 가능성.
- 공식 문서 : https://lightgbm.readthedocs.io/en/stable/
3. CatBoost
- 주요 특징:
- 범주형 변수 처리: 원-핫 인코딩 없이도 범주형 데이터를 효율적으로 처리.
- Ordered Boosting: 데이터 순서를 고려해 데이터 누수(Leakage)를 방지.
- 기본 설정 최적화: 과적합 방지를 위한 기본 하이퍼파라미터 설정.
- 장점:
- 범주형 데이터 처리에 강점.
- 데이터 전처리가 간단.
- 안정적이고 기본 설정만으로도 높은 성능.
- 단점:
- 학습 속도가 다소 느릴 수 있음.
- 공식 문서 : https://catboost.ai/docs/en/
4. Gradient Boosting Machine (GBM)
- 주요 특징:
- 그래디언트 부스팅의 기본 형태.
- Sklearn 등에서 구현된 간단한 버전.
- 여러 손실 함수 지원.
- 장점:
- 간단하고 이해하기 쉬움.
- 적은 데이터셋에서도 적합.
- 단점:
- 대규모 데이터에서는 속도와 성능이 낮음.
- 과적합 위험이 상대적으로 큼.
- 공식 문서 : https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html
5. HistGradientBoosting (Scikit-learn)
- 주요 특징:
- LightGBM에서 영향을 받아 히스토그램 기반 분할 방식 사용.
- 메모리 효율적이고 속도가 빠름.
- 장점:
- Scikit-learn 사용자의 친화적 인터페이스.
- 다중 코어를 활용한 병렬 처리 지원.
- 단점:
- CatBoost나 XGBoost에 비해 범주형 데이터 처리가 제한적.
- 공식 문서 : https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html
6. NGBoost (Natural Gradient Boosting)
- 주요 특징:
- 예측의 불확실성을 모델링하는 Bayesian framework를 기반으로 함.
- 통계적 분포를 예측하는 데 유용.
- 장점:
- 불확실성 추정 가능.
- 회귀 분석에서 성능이 좋음.
- 단점:
- 속도가 느릴 수 있음.
- 구현과 해석이 상대적으로 복잡.
- 공식 문서 : https://github.com/stanfordmlgroup/ngboost
모델 선택 기준
기준추천 모델
| 대규모 데이터셋 | LightGBM, XGBoost |
| 소규모 데이터셋 | CatBoost, GBM |
| 범주형 데이터 | CatBoost |
| 빠른 학습 속도 | LightGBM, HistGradientBoosting |
| 메모리 효율성 | LightGBM |
| 불확실성 추정 | NGBoost |
'머신러닝, 딥러닝' 카테고리의 다른 글
| [논문 매일 읽기 2일차] Deep learning (0) | 2024.12.18 |
|---|---|
| [논문 매일 읽기 1일차] Sequence to Sequence Learning with Neural Networks (1) | 2024.12.12 |
| 최적의 하이퍼 파라미터 검색 알고리즘 (0) | 2024.12.05 |
| 회귀 모델 평가 지표(MAE, MSE, RMSE) (0) | 2024.12.05 |
| KFold, Stratified KFold (0) | 2024.12.05 |