Machine Learning/Algorithm

Ensemble model - CatBoost

고슴군 2022. 7. 22. 16:47
  • 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란?]

  • 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