XGBoost (2014), LightGBM (2017), CatBoost(2018)는 모두 그라디언트 부스팅(Gradient Boosting) 알고리즘을 기반으로 하지만, 각기 다른 최적화와 특징을 가지고 있습니다.
각 모델은 어떤 특징을 가지고있으며 어떤 데이터에 좋은 성능을 보일까요?
XGBoost
XGBoost (Extreme Gradient Boosting)는 성능과 효율성을 고려하여 설계된 그라디언트 부스팅 프레임워크입니다.
Regularization
- L1 및 L2 정규화를 사용하여 모델의 복잡도를 제어하고 과적합을 방지합니다.
Parallel Processing
- 병렬 처리를 통해 학습 속도를 크게 향상시킵니다.
Tree Pruning
- "최소 손실을 고려한 가지치기" 방법을 사용하여 불필요한 노드를 제거하고 트리를 최적화합니다.
Handling Missing Values
- 결측값을 자동으로 처리하여 데이터 전처리의 부담을 줄입니다.
좋은 성능을 보이는 데이터
(1) 크고 복잡한 데이터셋
- XGBoost는 매우 큰 데이터셋과 복잡한 특징을 가진 데이터에 대해 잘 작동합니다.
(2) 다양한 타입의 문제
- 분류, 회귀, 순위 예측 등 다양한 문제에 효과적입니다.
(3) 정형 데이터
- 특히 테이블 형식의 정형 데이터에 대해 좋은 성능을 보입니다.
LightGBM
LightGBM (Light Gradient Boosting Machine)은 마이크로소프트에서 개발한 그라디언트 부스팅 프레임워크로, 학습 속도와 메모리 사용을 최적화한 것이 특징입니다.
Leaf-wise Tree Growth
- 전통적인 level-wise 방식 대신 leaf-wise 방식을 사용하여 트리를 확장합니다. 이는 더 깊고 예측력이 높은 트리를 생성합니다.
Histogram-based Algorithm
- 연속형 변수를 히스토그램으로 변환하여 연산 효율성을 높입니다.
Categorical Feature Handling
- 범주형 변수를 자동으로 처리하여 효율성을 높입니다.
좋은 성능을 보이는 데이터
(1) 대규모 데이터셋
- LightGBM은 특히 매우 큰 데이터셋에서 빠르고 효율적인 학습을 제공합니다.
(2) 많은 특징을 가진 데이터
- 많은 수의 특징을 가진 데이터에서도 잘 작동합니다.
(3) 온라인 학습
- 실시간 데이터와 온라인 학습 시나리오에서 유용합니다.
CatBoost
CatBoost (Categorical Boosting)는 Yandex에서 개발한 그라디언트 부스팅 프레임워크로, 범주형 데이터를 효과적으로 처리하는 데 초점을 맞추고 있습니다.
Categorical Feature Handling
- 범주형 변수를 자동으로 처리하여 원-핫 인코딩 없이도 범주형 변수의 정보를 잘 반영합니다.
Ordered Boosting
- 부스팅 과정에서 데이터 순서를 고려하여 과적합을 방지합니다.
Robustness to Overfitting
- 과적합에 강한 모델을 제공하며, 작은 데이터셋에서도 잘 작동합니다.
좋은 성능을 보이는 데이터
(1) 범주형 변수가 많은 데이터
- CatBoost는 범주형 변수가 많은 데이터에 대해 매우 좋은 성능을 보입니다.
(2) 작고 복잡한 데이터셋
- 상대적으로 작은 데이터셋에서도 좋은 성능을 발휘합니다.
(3) 정형 데이터
- 테이블 형식의 데이터에서 특히 강력한 성능을 보입니다.
요약
XGBoost
- 매우 큰 데이터셋과 복잡한 특징을 가진 데이터에 적합하며, 정형 데이터에 대해 좋은 성능을 보입니다.
LightGBM
- 학습 속도와 메모리 사용이 최적화되어 있어 대규모 데이터셋과 많은 특징을 가진 데이터에 적합합니다.
CatBoost
- 범주형 변수가 많은 데이터와 상대적으로 작은 데이터셋에서도 좋은 성능을 발휘하며, 범주형 변수를 효과적으로 처리합니다.