본문 바로가기

Data Science

CatBoost

기존 Gradient Boosting 기법들의 문제점

 

1. Prediction Shift

 

Training data에 대한 Conditional distribution 과

Test data에 대한 Conditional distribution 이 서로 다르다.

(즉, 낮은 Generalization ability를 보인다.)

 

 

2. Target Leakage

 

Target Statistic (TS) 를 활용해서 Numerical Feature 를 Categorical Feature 로 바꿔줄 때,

Target인 y 값이 Feature value인 x 값을 정의하는데 이미 한 번 사용된다.

 

그러면 Conditional Shift 가 발생할 수 있다.

 

 

즉, Train과 Test set에서 y에 대한 x의 분포가 달라진다. (Conditional Shift)

 

Train data에서는 자기 자신의 y 값 (target 정보) 를 사용하지만,

Test dataset에서는 사용하지 않는다.

 

 

 

Ordered Target Statistics (= Ordered TS = Ordered Target Encoding)

 

desired property 1
desired property 2

 

Ordered TS : Target Leakage 문제를 방지하고, 위의 두 가지 properties를 최대한 만족하는 TS

 

 

 

Greedy TS (Target Statistics)

 

특정 Feature의 각 category 별 평균값 (mean) 으로 대체

 

Smoothing을 적용하는 이유는, 값이 0 또는 1에 가까운 경우가 있기 때문이다.

(Used to remove the negative effect of low-frequency noisy categories)

 

Smoothing 적용

 

Training과 Test의 y 값 정보 활용 여부가 다르기 때문에,

위의 Property 1을 위반한다.

 

 

 

Holdout TS

 

excluding x(k)

Current k-th training example을 제외하고 TS를 계산한다.

 

Dataset을 D0와 D1 두 개로 나눠서,

D0는 TS 계산에만 활용하고, D1을 통해 모델을 학습한다.

 

하지만, 이러면 Training을 위한 data가 줄어들기 때문에

위의 Property 2를 위반하게 된다.

 

 

 

Leave-one-out TS

 

자기 자신만을 제외해서 TS를 계산하고,

모든 data를 training에 활용하는 방식

 

하지만 이는 여전히 Target Leakage 가 발생하고,

위의 Property 1을 위반한다.

 

 

 

Ordered TS

 

먼저 Random Permutation을 적용해 dataset을 구성하고,

( sigma : Random Permutation 이 적용된 순열 )

 

Random Permutatoin (Sigma)

 

data에 가상의 시간 (artificial time) 을 도입해서,

현재 시점의 k 번째 data 보다 이전 시점의 data들로 TS를 계산한다.

( 즉, sigma(j) < sigma(k) 를 만족하는 data examples )

 

 

 

Ordered Boosting

 

Prediction Shift 문제를 방지하기 위한 방법

 

F(t) 를 계산할 때, 1 ~ (t-1) 까지의 이전  tree 들에서 example x(k)를 계산에 사용하면 안된다.

( 안 그러면, Prediction Shift 발생할 수 있음 )

 

Ordered TS 와 마찬가지로, Random Permutation 적용

 

 

 

 

Oblivious Tree

 

CatBoost 에서는 Tree의 각 level에서의 split 기준이 모두 동일하다.

이렇게 함으로써 Overfitting 방지와 시간 단축의 효과가 있다.

 

 

 

논문에서 말하는 CatBoost의 장점

 

1. High cardinality categorical feature 를 다루는 데에 용이하다.

2. Oblivious Tree를 활용하기 때문에, Overfitting의 위험이 적고 속도가 기존 Boosting 기법 대비 빠르다.

3. Ordered TS와 Ordered Boosting 을 통해 높은 예측 성능을 보여준다.

 

 

 


 

◎ References

 

< paper, CatBoost: unbiased boosting with categorical features >

 

고려대학교 산업경영공학부 DSBA 연구실, 04-9: Ensemble Learning - CatBoost (앙상블 기법 - CatBoost) >

 

< 고려대학교 산업경영공학부 DSBA 연구실, [Paper Review]Catboost: Unbiased Boosting with Categorical Features >

 

< StatQuest, CatBoost Part 1: Ordered Target Encoding >

 

< StatQuest, CatBoost Part 2: Building and Using Trees >

 

< kicarussays 님 블로그, [논문리뷰/설명] CatBoost: unbiased boosting with categorical features >

 

'Data Science' 카테고리의 다른 글

Covariance  (0) 2023.05.18
SVM (Support Vector Machine)  (0) 2023.05.17
XGBoost for classification  (0) 2023.05.06
XGBoost for regression  (0) 2023.05.05
Gradient Boosting (그래디언트 부스팅) for classification  (0) 2023.05.03