- Gradient Boosting Model (GBM)의 Background
- 마지막 행 : negative gradient는 잔차를 의미한다. 잔차를 target value로 두고 squared loss를 최소화하는 함수를 찾아내는 것.
- train data에 대한 t-1 시점의 함수값과 test data에 대한 t-1 시점의 함수값이 shift 된다, 다르다는 것.
- 같아야 통계적으로 좋은 모델이다.
- Gradint Boosting의 두 번째 issue
- Ordered TS
- 만약, categorical 변수의 값이 c 인게 1개 있으면, TS로 계산하면 1이 된다
- 이 경우를 우려하는 거다. outlier로 c가 1개 들어왔는데, TS로 계산하면 1의 값을 가지게 된다.
- 그래서 a와 p라는 파라미터를 사용하여 smoothing 시키게 된다.
- 이렇게 계산한 값 조차 target leakage를 피할 수는 없다.
- 이 외에도 target leakage를 피할 수 있는 기법에 대해 여러 제안이 있었지만 (강의에서는 설명함), 결국 target leakage를 피할 수 없었다.
- 이러한 약점을 보완하기 위해, catboost는 ordered TS를 사용한다.
- Ordered TS
- 인공적인 시간을 도입해서, 인공적인 시간 순서를 가지고 와서 이것을 바탕으로 앞서서 존재하는 객체들의 값을 활용하여 계산한다.
- Conditional shift를 방지하기 위해 ordered boosting을 사용한다.
- XGBoost, LGBM, Catboost 중 상황에 따라서 최적의 모델이 다르기 때문에, 이 세 가지를 모두 자유롭게 활용할 수 있는 상태로 본인을 준비시키는게 좋은 전략이다.
- Catboost 장단점
[CatBoost란?]
- GBM의 치명적인 문제점 중 하나로 과적합 문제가 존재합니다. 이 과적합 문제를 해결하면서 동시에 기존 GBM계열의 알고리즘인 XGBoost, LightGBM 알고리즘보다 학습 속도를 개선하는 장점을 앞세워 개발되었습니다.
- GBM은 최초의 데이터를 학습할 때만 예측값을 기반으로 하고 그 이후의 데이터를 학습할 때는 예측값을 활용해서 계산한 잔차에만 포커스를 맞추어서 학습하게 됩니다.
- 하지만 이렇게 잔차에만 포커스를 맞추어 학습하는 것이 매우 이상적이라고 보일지도 모르겠지만 모델이 본적 없는 데이터에는 예측을 잘 하지 못하는 과적합(Overfitting) 문제를 유발할 가능성이 매우 높다는 것이 치명적인 단점입니다.
- 범주형 변수의 예측모델에 최적화된 모델입니다.
- 기존의 그래디언트 부스팅 알고리즘을 조작하여 타겟 누수(target leakage)를 개선합니다.
- target leakage는 예측 시점에서 사용할 수 없는 데이터가 데이터셋에 포함되는 오류를 말합니다.
- 즉, 모델이 독립변수들인 x만을 활용하여 종속변수인 y를 예측해야 하는데, y에 대한 정보가 x에 포함되어 있는 경우를 말합니다.
- 기존의 그래디언트 부스팅 방법들은 손실함수를 target value에 대해 편미분한 그래디언트 값을 활용하기에 좋은 아이디어 같지만, target value를 활용하여 생기는 target leakage로 인해 training/test 데이터 셋의 output의 분포에 차이가 생기게 되고 오버피팅을 발생시킵니다.
- 즉, 다음 스텝의 트리를 만들 때, 이전에 사용했던 데이터를 다시 재사용하여 과적합이 쉽게 되었습니다.
- XGBoost, LightGBM이 Hyper-parameter에 따라 성능이 달라지는 민감한 문제를 해결하는 것에도 초점을 맞추었습니다.
[Catboost의 장단점]
1. 장점
- 다른 GBM에 비해 overfitting이 적다.
- 범주형 변수에 대해 특정 인코딩 방식으로 인하여 모델의 정확도와 속도가 높습니다.
- One-hot Encoding, Label Encoding 등 encoding 작업을 하지 않고도 그대로 모델의 input으로 사용할 수 있습니다.
2. 단점
- missing data를 처리해주지 않습니다. (xgboost는 default로 missing value 처리해준다)
- Sparse Matrix 즉, 결측치가 매우 많은 데이터셋에는 부적합한 모델입니다.
- 예를 들어, 추천시스템에 자주 사용되는 사용자-아이템 행렬 데이터를 살펴보면 보통 Sparse한 형태로 이루어져 있습니다. 만약 이러한 데이터를 활용하려면 Sparse한 특성이 없도록 Embedding을 적용한다던지 등 데이터를 변형한 후 CatBoost에 활용하는 것이 적합할 것입니다.
- 데이터 대부분이 수치형 변수인 경우, LightGBM보다 학습 속도가 느립니다. (즉 대부분이 범주형 변수인 경우 사용)
반응형
'Machine Learning > Algorithm' 카테고리의 다른 글
Ensemble model - LightGBM (0) | 2022.07.22 |
---|---|
Ensemble model - XGBoost (0) | 2022.07.09 |
Ensemble model - GBM (Gradient Boosting Machine) (0) | 2022.07.07 |
Ensemble model - Adaboost (Adaptive Boosting) (0) | 2022.07.07 |
Ensemble model - Bagging (0) | 2022.07.05 |