참고
https://dailyheumsi.tistory.com/136
기존 부스팅 모델의 문제점
1) 느린 학습 속도
배깅의 경우 여러 트리들이 병렬적으로 모델학습을 수행하고 부스팅의 경우 순차적으로 모델의 학습을 수행하기 때문에 학습 속도가 느리다.
2) 오버피팅
부스팅은 '잔차'를 줄여나가기 위해 학습하는 모델이기 때문에 High Variance한 모델일 수 밖에 없다.
Catboost의 특징
1) Level-wise Tree
XGBoost와 더불어 Catboost는 level-wise로 트리를 만들어간다. (Light GBM은 Leaf-wise)
Level-wise는 BFS와 같이 트리를 만들어나가는 형태고, Leaf-wise는 DFS와 같이 트리를 만들어나가는 형태다.
2) Ordered Boosting
일부만 가지고 잔차계산을 한 뒤, 이것으로 모델을 만들고, 그 뒤에 데이터의 잔차는 이 모델로 예측한 값을 사용한다.
3) Random Permutation
Ordered boosting 방식을 고려하여 데이터를 셔플링해서 뽑아낸다.
4) Ordered Target Encoding
특정 범주를 가진 데이터들의 class_label의 값의 평균으로 인코딩하는 것이다.
하지만 이런 문제는 우리가 예측해야 하는 값이 훈련 셋 피처에 들어가버리는 문제, 즉 Data Leakage 문제를 일으킨다. 이는 오버피팅을 일으키는 주 원인이자, Mean encoding방법 자체의 문제이기도 하다. 그래서 Catboost는 현재 데이터의 인코딩하기 위해 이전 데이터들의 인코딩된 값을 사용한다.
오버피팅도 막고 수치값의 다양성도 만들어주는 기법이라고 볼 수 있다.
5) Categorical Feature Combinations
Catboost는 information gain이 동일한 두 feature를 하나의 feature로 묶어버린다. 결과적으로 데이터 전처리에 있어 feature selection 부담이 줄어든다고 할 수 있다.
6) One-hot Encoding
사실 범주형 변수를 항상 Target Encoding하는 것은 아니다. Catboost는 낮은 Cardinality를 가지는 범주형 변수에 한해서, 기본적으로 One-hot encoding을 시행한다.
아무래도 Low Cardinality를 가지는 범주형 변수의 경우 Target Encoding보다 One-hot이 더 효율적이기 때문이라고 볼 수 있다.
7) Optimized Parameter tuning
Xgboost나 Light gbm은 파라미터 튜닝에 매우 민감하지만, 기본적으로 Catboost는 최적화가 잘 되어 있어서 파라미터 튜닝에 크게 신경쓰지 않아도 된다.
대부분 부스팅 모델들이 파라미터 튜닝을 하는 이유는 트리의 다형성과 오버피팅 문제를 해결하기 위함인데, Catboost는 이를 내부적으로 알고리즘을 해결하고 있으니, 파라미터를 튜닝할 필요가 없는 것이다.
CatBoost의 장점을 정리하자면
1. 범주형 변수를 자동으로 전처리해준다는 점
2. 변수의 튜닝 없이도 높은 예측성능을 보여준다는 점
Catboost의 한계
1) Sparse한 Matrix는 처리하지 못한다.
2) 데이터 대부분이 수치형 변수인 경우, Light GBM보다 학습 속도가 느리다.
'2. 데이터 분석 > ADP' 카테고리의 다른 글
[ADP 실기준비] 1. 시계열분석 (0) | 2022.03.12 |
---|