CatBoost 모형

그 이름 Catcategorical feature를 뜻하는데 categorical 변수에 최적화되어있다고 논문에서 주장하고 있습니다.

 

“ Two critical algorithmic advances introduced in CatBoost are the implementation

of ordered boosting, a permutation-driven alternative to the classic algorithm, and

an innovative algorithm for processing categorical features

 

논문에서 언급하는 ordered boosting은 일반적인 boosting이 모든 데이터 row에 대해 gradient 업데이트 과정을 거쳤다면

 

Catboost는 다음과 같이 일부 row에 대해서 gradient 업데이트 후 다음 row를 예측하는 모델을 만들어 예측하는 과정을 반복 수행합니다.

 

그림1. ordered boosting 방법을 설명한 글

 

위의 논문 언급에서 permutation driven이라는 말이 있는데 이것은 위의 ordered boosting에서 매번 동일한 데이터 row에 대해 수행하는 것을 방지하고

 

매번 데이터 순서를 random으로 permutation(순열, random으로 섞겠다는 의미)하여 ordered boosting을 수행하겠다는 의미입니다.

 

여기서 끝내면 조금 아쉬운 것이 CatBoost라는 이름에 걸맞게 categorical 변수를 어떻게 처리하는지 정도는 알아보는게 좋을 것 같습니다.

 

categorical 변수의 target값에 대해 categorical 변수를 encoding하는 과정을 target encoding이라고 합니다.

 

그림2. target encoding 예시

 

그런데 ordered boosting 과정에서도 짐작이 가능하듯이 현재 datatarget으로 encoding하면 예를 들어 예측해야하는 databoosting을 위한 data로 들어가는 data leakage 같은 문제가 생길 수 있다고 생각하였습니다.

 

그래서 ordered target encoding이라고 이전 데이터의 target encoding값을 현재 데이터의 encoding값으로 사용하는 기법을 썼다고 합니다.

 

그리고 target encoding은 사실 서로 다른 데이터 개와 거위인데도 동일한 target 2000으로 encoding될 수 있는 문제도 있는데 ordered target encoding을 하면서 encoding의 다양성을 부여하는 효과도 있다고 볼 수 있습니다.

 

또 하나 categorical feature combination이라는 기법은 information gain이 동일한 두 feature에 대해서는 동일한 feature로 묶어서 decision tree를 생성할 때 순간순간 feature를 선택하는 cost도 줄였다고 합니다.

 

그림3. information gain이 동일한 두 feature

 

위와 같은 경우 countryhair color를 하나의 feature로 생각한다고 합니다.

 

XGBoostLightGBM, CatBoost는 어느 것이 더 우월하다고 결단하기 어렵습니다.

 

모두 일반적인 gradient boosting의 느린 학습 속도와 overfitting을 방지하기 위해 자기만의 특징있는 기술을 도입하여 개선한 모형이라고 볼 수 있습니다.

 

참고

 

1706.09516.pdf (arxiv.org)

 

 

'정형데이터' 카테고리의 다른 글

분위수 변환(quantile transformation)  (0) 2021.12.09
의사결정나무(decision tree)의 생성 원리  (0) 2021.12.06
Light GBM 모형  (0) 2021.11.02
XGBoost 모델  (0) 2021.11.02
Gradient boosting 모형  (0) 2021.11.01
TAGS.

Comments