부스팅 알고리즘은 분류기에서 진행되는 과정간에 오차 분류 data에 다가 가중치를 주어 다시 분류를 진행하는 과정으로 반복적으로 하여 개선해 나가는 학습 방법이다.
의사결정트리모델의 앙상블 기법에는 Baggin과 Boosting이 있다. Boosting은 Bagging과는 목적성이 다른 방법이다.
부스팅의 목적은 모델의 Bias를 감소하는데에 있다. Low variance하고 High Bias를 가진 모델에 적합한 기법이다.
Low variance라는 것은 입력변수에 따라 예측값이 일정하게, 분산이 크지 않게 나오는 것을 의미하고, high bias라는 것은 정답과의 괴리가 높다는 것을 의미한다. 즉, 예측값의 분산이 크지 않지만 정답과 거리가 있게 나오는 모델에 부스팅이 효과적일 수 있다.
왜냐면, 부스팅은 연속적으로 진행하면서 오류를 개선해 나가기 때문에 정답에 근접해질 수 있기 때문이다.
부스팅은 세개에 regularization 파라미터를 갖는다.
1. 트리의 수
Bagging이나 random foreset와 다르게 트리의 수가 많으면 overfit이 발생할 수 있다. 교차검증을 통해 트리 개수를 정할수 있다.
2. 수축 파라미터 ( λ )
수축 파라미터를 통해 부스팅의 학습속도를 제어한다. 보통 0.01~0.001의 값을 갖고 있으며, 트리수와 trade off 관계이기 때문에 λ 가 매우 작은 값이면 좋은 성능을 내기 위해서는 아주 큰 값의 트리 수를 사용해야한다.
3. 각 트리의 분할 수
앙상블 모델의 복잡도를 제어한다. 각 트리마다 가지가 많을 수록 복잡도가 증가하고 연속적인 모델을 생성하는데에 corelation 문제도 발생할 수 있기 때문에 최대한 적은 분할 수를 가지는 것이 좋다. 처음 시도할 때 분할 수 =1 (stump)로 설정해도 좋다. 작은 트리가 부스팅에 더 높은 성능을 가져올 수 있다.
- 부스팅 알고리즘
1. AdaBoost : 다수결을 통한 정답 분류 및 오답에 가중치 부여
2. GBM: Loss Function의 gradient를 통해 오답에 가중치 부여
3. Xgboost: GBM 대비 성능 향상. 조기 중단 기능(Early Stopping) 사용 가능. 시스템 자원 효율적 사용 가능. (2014년 공개)
4. Light GBM: Xgboost 대비 성능 향상 및 자원 소모 최소화. Xgboost가 처리하지 못하는 대용량 데이터 학습 가능. 리프 중심 트리 분할 사용(기존: 균형트리 분할방법). Approxibates the split(근사치의 분할)을 통한 성능 향상(2016년 공개)
▼ Early Stopping 주요 파라미터
1. early_stopping_rounds: loss가 감소하지 않는 최대 반복횟수
2. eval_metric: 반복수행시 사용하는 평가지표
3. eval_set: validation set 입력.
댓글