📝 CatBoost: unbiased boosting with categorical features
1 Introduction
- Gradient boosting은 다양한 실용적인 작업에서 최첨단 성능을 달성하는 강력한 머신러닝 기법
- 기존의 gradient boosting 구현이 공통적으로 가지는 통계적 문제를 지적
- 정렬 원칙(ordering principle)을 제안하여 기존의 gradient boosting 알고리즘을 개선
2 Background
- CatBoost는 gradient boosting을 구현한 라이브러리로, 기본 예측기로 이진 의사결정 나무를 사용하며, 특징 공간을 재귀적으로 분할하여 최적의 예측값을 생성
- CatBoost는 회귀 및 분류 문제에서 높은 성능을 발휘
3 Categorical feature
- 고유 값 개수(카디널리티, cardinality)가 높은 특징은 과도하게 많은 새로운 특징을 생성하게 되어 현실적으로 적용이 어려움
- 문제 해결을 위해, 타겟 통계(Target Statistics, TS)를 활용하여 각 카테고리에서 기대되는 타겟 값을 추정하고, 이를 기반으로 그룹을 형성함
- 타겟 통계를 새로운 수치형 특징으로 사용하는 것이 범주형 특징을 처리하는 가장 효율적인 방법이며, 정보 손실을 최소화할 수 있음
3.2 Target statistics
Greedy TS (탐욕적 TS)
-
개념
- 각 범주(category)의 타겟 값 평균을 사용하여 해당 범주의 대표값을 계산하는 방식
- 특정 범주에 속하는 샘플들의 타겟 값 평균을 그대로 사용함
x^ik=∑j=1n1{xij=xik}+a∑j=1n1{xij=xik}⋅yj+ap
-
문제점
- 타겟 누출(Target Leakage) 발생 가능
- 조건부 분포 이동(Conditional Shift) 발생
Holdout TS (홀드아웃 TS)
-
개념
- 한 그룹의 데이터를 이용해 TS 값을 계산하고, 다른 그룹을 이용해 모델을 학습
D=D0∪D1
-
장점
-
타겟 누출(Target Leakage) 방지
-
조건부 분포 이동 문제 완화
-
문제점
Leave-One-Out TS
-
개념
- 특정 샘플의 TS를 계산할 때 해당 샘플을 제외한 나머지 데이터를 이용하는 방식
x^ik=n−1+an+−yk+ap
-
장점
- 타겟 누출을 어느 정도 방지하면서도 데이터 사용량을 극대화할 수 있음
-
문제점
Ordered TS (정렬된 TS, CatBoost 방식)
-
개념
-
온라인 학습 방식에서 영감을 받아, 모델이 훈련 데이터에 접근하는 순서를 고려하여 TS를 계산하는 방법
-
각 샘플의 TS 값은, 해당 샘플보다 앞선 샘플들의 정보만을 사용하여 계산됨
Dk={xj∣σ(j)<σ(k)}
-
장점
-
타겟 누출 완벽 방지
-
전체 데이터를 활용할 수 있음
-
일반화 성능이 우수
-
문제점
4 Prediction shift and ordered boosting
4.1 Prediction shift
-
그래디언트 부스팅에서 같은 데이터셋을 여러 단계에서 사용하면 예측 이동이 발생함
-
Ordered Boosting (정렬된 부스팅)을 통해 이를 방지할 수 있음
-
Greedy TS 또한 타겟 누출로 인해 비슷한 문제를 겪으며, 조건부 분포 이동이 발생
-
그래디언트 부스팅의 일반화 성능을 높이려면, 예측 이동을 방지하는 전략이 필요함
4.2 Ordered boosting
-
Ordered Boosting 은 예측 이동(Prediction Shift)을 방지하는 효과적인 방법
-
훈련 샘플마다 서로 다른 데이터를 사용하여 학습된 모델 세트를 유지하면 해결 가능
-
특정 예제의 잔차를 계산할 때, 해당 예제를 학습하지 않은 모델을 사용
-
CatBoost는 이러한 기법을 활용하여 기존 부스팅 기법보다 더 안정적인 성능을 제공