수학/Statistical Learning

[ISLR] 부스팅(Boosting)

AI 꿈나무 2021. 7. 31. 21:44
반응형

부스팅(Boosting)

 결정 트리의 예측을 향상시키는 또다른 방법은 부스팅(boosting) 입니다.

 

 부트스트랩을 사용하여 다수의 training data 부분 집합을 생성하여 각 부분 집합에 대하여 각 트리를 적합하고 결과값을 평균하는 것이 배깅이었습니다. 각 트리는 부트스트랩 데이터셋을 기반으로 구축되고 트리는 서로 독립적입니다.

 

 부스팅은 트리들이 순차적으로 만들어지는 것을 제외하고 이와 비슷한 방법으로 작동합니다. 각 트리는 이전에 만들어진 트리로부터 정보를 사용하여 만들어집니다. 부스팅은 부트스트랩 샘플링을 사용하지 않습니다. 대신에 각 트리를 original dtaset의 수정된 버전에 적합합니다.

 

 우선 회귀 트리를 고려하겠습니다. bagging과 같이 부스팅은 많은 수의 결정 트리를 결합합니다. 아래와 같은 알고리즘으로 작동합니다.

 

 

 데이터에 과하게 적합하여 과적합의 위험이 있는 하나의 큰 결정 트리를 데이터에 적합하는 것과 다르게 부스팅은 천천히 학습합니다. 주어진 현재 모델을 모델의 잔차(residual)에 결정 트리를 적합합니다. 즉, 결과값 Y가 아니라 현재 잔차를 사용하여 트리를 적합합니다. 그리고나서 잔차를 갱신하기 위해 새로운 결정 트리를 적학된 함수에 추가합니다.

 

 알고리즘에서 파라미터 d에의해 결정되는 종단 노드(terminal nodes) 수에의해 각 트리는 작을 수 있습니다. 작은 트리를 잔차에 적합함으로써 좋은 성능을 내지 못하는 영역으로 f를 천천히 개선합니다. 수축 파라미터 $\lambda$는 과정을 더욱 느리게 합니다. 이는 더 많은 다른 형태들의 트리들이 잔차를 공격하도록 합니다. 일반적으로 천천히 학습하는 통계 학습 접근법은 좋은 성능을 나타냅니다.

 

 배깅과 달리 부스팅은 각 트리가 이미 생성된 트리들에 강하게 의존합니다.

 

 부스팅은 3개의 조율 파라미터를 갖고 있습니다.

 

1. 트리의 수 B. 배깅과 랜덤 포래스트와는 달리 만약 B가 크면 부스팅은 과적합 합니다. B를 선택하기 위하여 cross-validation을 사용합니다.

 

2. 수축 파라미터 $\lambda$는 부스팅이 학습하는 비율을 조절합니다. 일반적으로 0.01 또는 0.001 값을 사용하고 적합한 선택은 문제에 의존합니다. 매우 작은 $\lambda$는 좋은 성능을 내기 위하여 매우 큰 B가 필요합니다.

 

3. 각 트리에서 분할의 수 d는 boosted ensemble의 복잡도를 조절합니다. 보통 d=1이면 잘 작동하며 이경우에 각 트리는 하나의 분할로 구성된 그루터기(stump) 입니다. 부스팅은 가변 모델을 적합하므로 각 요소는 단일 변수만을 포함합니다. 좀 더 일반적으로, d개의 분할은 많아야 d개의 변수를 포함하기 때문에 bossted model의 상호 작용 순서를 제어하고 d를 상호작용 깊이(interaction depth)라고 합니다.

 

 

 부스팅은 트리의 수가 많다면 d=1인 경우에 성능이 뛰어납니다. 이는 부스팅에서 각 트리가 다른 트리들을 고려하기 때문에 가법모델(additive model)이 되기 때문입니다. 또한 d=1인 경우에 해석력도 뛰어납니다.

 


참고자료 및 그림 출처

Gareth James의 An Introduction to Statistical Learning

반응형