목차
출처
1. 정의
Extreme Gradient Boosting의 약자로 GBM에서 Boosting 특성상 Sequential한 학습이 진행되기 때문에 속도가 느리다는 단점을 알고리즘의 병렬학습을 통해 개선한 방법이다.
2. 장점
•
Parallel Learning → 분산 컴퓨팅 기법을 활용한 병렬 작업
◦
GBM 대비 속도가 빠르다.
•
Approximate Greedy Algorithm, Regularization Term, Column Subsampling, Early Stopping → 과적합 방지
•
Sparsity-aware Split Finding → 결측치가 있는 데이터에도 적용 가능
•
Approximate Greedy Algorithm, Cash-aware access, Blocks for Out-of-core Computation → 하드웨어 최적화 및 메모리 문제 개선
Leaf-wise 방식(LightGBM) 대비 robust함
병렬 학습&GPU 사용 가능(이후 모델은 모두 가지고 있는 장점)
자체적으로 결측치 처리(이후 모델은 모두 가지고 있는 장점)
3. 단점
GBM 대비 속도가 빠르지만 여전히 느린 편
범주형 변수 원핫인코딩 필요
hyperparameter가 많아 tuning 시 속도가 더 느려짐
4. Tuning 및 Hyperparameter (Python)
1.
일반 파라미터: 부스터 수행시 트리를 사용할지, 선형 모형을 사용할지 선택(부스터 구조)
a.
booster: 기본값은 gbtree인데, 이외에 gbtree, gblinear, dart가 있다.
b.
n_jobs, verbosity
2.
부스터 파라미터: 선택한 부스터에 따라 파라미터 종류가 다르다.
a.
learning rate: 높을수록 과적합하기 쉽다
b.
n_estimators: 생성할 weak learner 수, learning rate 낮으면 n_estimator 낮아야 과적합이 방지
c.
max_depth, min_child_weight, gamma(리프노드 추가분할 결정시 최소손실 감소값, 값 높을수록 과적합 방지), subsample(weak learner가 학습에 사용하는 데이터 샘플링 비율)
3.
학습과정 파라미터
a.
objective: 예측확률을 어떻게 반환할지
b.
eval_metric: 모델의 평가 함수 조정
c.
seed