<aside> 📎 간단 요약
범주형 변수에 효과적인 Boosting 모델
시계열 데이터를 효율적으로 처리한다.
</aside>
CatBoost is a high-performance open source library for gradient boosting on decision trees.
조정해야 할 하이퍼 파라미터 수가 적어서 쉽게 사용할 수 있다.
Target Leakage 문제
범주형 변수 처리 방법
수치형 변수 처리 방법
다른 부스팅 모델과 동일하다.
과적합을 막기 위해, 데이터 셋을 둘로 분할해 각각 label encoding과 모델 학습에 사용한다.
one-hot encoding 대신 해당 category의 label 평균 값을 활용한다.
예측 대상인 Y값을 변수에 써버렸으니 Target Leakage에 해당된다.
Target Leakage 해결을 위한 방법
시계열 데이터가 있다면 시간을 활용하고, 없다면 무작위 순열을 통해 데이터에 임의의 시간 순서를 부여한 뒤, 그 순서대로 학습에 사용한다.
Q. 부여한 데이터의 순서가 성능에 영향을 미칠 것 같은데?
$n$번째 Target Statistics를 계산할 때는 $n-1$개 데이터의 statistics 정보를 이용해 계산한다.
$$ \hat{x}k^i=\frac{\sum{\mathbf{x}j \in \mathcal{D}k} \mathbb{1}{\left\{x_j^i=x_k^i\right\}} \cdot y_j+a p}{\sum{\mathbf{x}_j \in \mathcal{D}k} \mathbb{1}{\left\{x_j^i=x_k^i\right\}}+a} $$
$$ \text { take } \mathcal{D}_k=\left\{\mathbf{x}_j: \sigma(j)<\sigma(k)\right\} $$