XGBoost, LightGBM, Catboost 차이를 알아보도록 하겠습니다.
XGBoost (Extreme Gradient Boosting)
기존 Gradient Boost의 한계로 학습 시간이 오래걸린다는 점, 스케일업된 데이터 학습에 취약하다는 점,
과적합되기가 쉽다는 점 등이 있었습니다. 이러한 단점들을 해결하고자 나오게 된 것이 XGBoost 입니다.
- residual 을 학습하는 기존 GBM에 추가적으로 similarity score, gamma, gain 학습 방법론이 추가되었습니다.
- 병렬 학습이 가능해져 스케일 업 데이터에서도 빠른 학습이 가능해졌습니다.
- 적절한 규제를 하이퍼파라미터로 줄 수 있게 되어 과적합을 막는데 효율적이게 되었습니다.(lambda(L2), alpha(L1), gamma)
LightGBM (LightGradientBoost)
XGBoost 보다 빠른 학습 방법론을 제시한 모델입니다. Imforamgtion Gain 기반 split을 하게되면 모든 feature와
data에 대해 접근해야하기 때문에 계산량이 많았습니다.
GOSS(Gradient-based One-Side Sampling) 기법을 사용하여 Imformation Gain 계산할 때 가중치가
작은 개체에 승수 상수를 적용하여 데이터를 증폭시켜 데이터 분포를 변경하지 않고 훈련이
덜된 개체 초점을 맞추어 효율적인 학습을 하게 되었습니다.
또한, EFB(Exculsive Feature Bundling) 방법을 이용하여 상호 배타적인 feature들을
하나의 bundle feature로 만들어 모델 성능 감소 없이 훈련속도를 높이게 되었습니다.
- GOSS, EFB 를 통한 효율적이고 빠른 학습
- xgboost 보다 빠른 학습
- 1만개 이하 혹은 적은 데이터에 대해서 과적합이 발생하게 됩니다.
Catboost (Categorical Boosting)
기존 boosting 모델들의 학습 방법론인 residual이 새로운 target이 되게되면 prediction shift가 일어나게
되는데 매 estimater 마다 반복이 되게 되면 결국 target leagkage 문제가 발생하게 되었습니다.
또한, 기존 범주형 변수 처리를 할 때 One Hot으로 처리할 시 feature 수가 대량으로 증가하게 되어 학습 효율과
속도에 문제가 있었습니다.
catboost는 ordering principle을 적용한 Ordered TS(Target Statistics) 방법을 제안하였습니다.
이를 통해 기존 범주형 변수를 처리 할 때 문제점들을 개선할 수 있었습니다.
또한, ordering principle 방법을 통해 동일한 데이터를 학습하는 것이 아닌 다른 데이터로 모델 학습이 이루어집니다.
이는 prediction shift로 인한 Target leakage overfitting 문제를 해결하는데 도움이 됩니다.
이외에도 Olivious descision Tree 방식을 통해 균형적인 트리를 만들 수 있어 overfitting을 막는데
도움이 되었으며 feature combination으로 범주형 변수의 조합으로 새로운 변수를 만드는 방법론도 제시하였습니다.
- 범주형 변수의 적절한 featureengineering을 모델학습 단계에서 자동으로 해준다.
- 효율적으로 범주형 변수에 대한 학습이 이루어진다.
- 데이터가 대부분 수치형 변수일 경우 효과를 보기 어렵다.
- lightgbm 비해 속도가 느리다.
'AI' 카테고리의 다른 글
[차원축소] EVD, SVD, PCA, LDA (0) | 2022.09.06 |
---|---|
차원의 저주(Curse of Dimensionality) (0) | 2022.09.04 |
GradientBoosting 하이퍼 파라미터 (0) | 2022.08.27 |
Gradient Boosting (0) | 2022.08.22 |
벡터 연산 및 가중치 행렬 (0) | 2022.04.14 |