2023. 1. 9. 12:06ㆍML
저번 글에서부터 이제 앙상블(Emsemble) 기법들에 대해 알아보고 있는데요.
이번 시간에는 Bagging과는 또 다른 방법인 Boosting에 대해서 공부해봤습니다.
먼저 Boosting에 대해 알아봅시다.
1. Boosting
Boosting은 약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법을 말하는데요
앞의 모델을 보완해나가면서 일련의 예측기를 학습시킵니다.
이 Boosting에도 여러 종류가 있는데 먼저 에이다 부스트(Adaptive Boosting)에 대해 알아봅시다
1)Adaptive Boosting(에이다 부스트)
이전 예측기를 보완하는 방법으로는 이전 모델이 과소적합했던 샘플에 가중치를 더 높이는 방법을 사용하고 있습니다.
가중치를 높이게 되면 그 다음 분류기에서 업데이트된 가중치를 가지고 다시 훈련을 진행하고 필요에 따라 또 다시 가중치를 업데이트하면서 성능을 계속 높여나갑니다.
아래 그림 중 왼쪽을 보게 되면 샘플들을 잘못 분류한 경우들이 많은 것을 볼 수 있습니다.
하지만 에이다 부스트를 활용하여 잘못 분류한 샘플들의 가중치를 업데이트하면 오른쪽처럼 분류 성능이 확연히 높아지는 것을 확인할 수 있습니다.
2)Gradient Boosting(그레디언트 부스트)
에이다부스트처럼 이전까지의 오차를 계속 보정해나가지만 다른 점이라고 한다면 샘플의 가중치를 수정하는 것이 아닌 이전 예측기의 잔여 오차를 이용하여 새로운 학습을 진행한다는 것입니다.
아래 그림으로 쉽게 알아봅시다.
아래 그림은 결정 트리를 기반 예측기로 사용하는 예측기인데요.
왼쪽 라인부터 살펴보면 가장 위의 그림은 가장 기본적인 학습모양을 보여주고 있습니다.
왼쪽 중간 그림과 왼쪽 맨 아래 그림은 잔여 오차를 이용하여 연속적으로 훈련한 모습입니다.
오른쪽 그림 라인을 한번 보게 되면 왼쪽의 잔여오차들을 이용하여 만든 예측기들을 합친 모습들을 보여주는데요.
오른쪽 위 그림은 첫 번째 앙상블 모델로 기존의 첫번째 모델과 동일하게 보여집니다.
하지만 오른쪽 중간 그림과 아래 그림을 보면 잔여 오차를 이용하여 만든 모델들을 하나씩 합쳐감으로써 점점 성능이 높아지는 것을 볼 수 있습니다.
3)XGBOOST(Extreme Gradient Boosting)
마지막으로 오늘의 주제인 XGBOOST에 대하여 알아보겠습니다.
XGBOOST는 2번에서 살펴보았던 Gradient Boosting을 최적화한 모델인데요.
XGBOOST는 CART(Classification and Regresstion Tree)를 기반으로 해서 분류와 회귀 영역 모두 활용이 가능하고
과적합 방지를 위한 규제 기능이 포함되어 있습니다.
또한 조기 멈춤, 결손값 자체 저리, 교차 검증 등의 기능 활용도 가능해서 차세대 알고리즘으로 각광받고 있습니다.
매우 뛰어난 성능을 가진 알고리즘으로 평가받아서 머신러닝 경연 대회에서 상당히 많이 사용되고 있고
기존보다 매우 빠른 속도, 높은 확장성, 높은 이식성을 목표로 사용되고 있습니다.
높은 성능을 잘 이용하기 위해서 하이퍼 파라미터의 종류도 매우 다양한데요.
1.n_estimators(num_boost_round)
-결정 트리의 개수를 의미합니다.
-기본값 10
2.max_depth
-트리의 깊이를 의미합니다.
-범위: 0~무한대(기본값 6)
-과적합에 가장 민감하게 작용하는 파라미터 중 하나입니다.
3.eta(learning rate)
-학습률을 의미합니다.
-범위:0~1(기본값 0.3)
-1에 가까울수록 과적합 발생 가능성이이 높습니다.
4.min_child_weight
-leaf node에 포함되는 최소 관측치의 수를 의미합니다.
-범위:0~무한대(기본값 1)
-작은 값을 가질수록 과적합 발생 가능성이 높습니다.
5.gamma
-leaf node의 추가분할을 결정할 최소손실 감소값을 의미합니다.
-범위:0~무한대(기본값 0)
-값이 클수록 과적합 감소효과가 있습니다.
6.sub_sample
-학습 시 데이터 샘플링 비율을 지정합니다.
-범위:0~1(기본값 1)
-일반적으로 0.5~1의 값을 사용합니다.
7.colsample_bytree
-트리 생성에 필요한 feature의 샘플링 비율을 지정합니다.
-범위:0~1(기본값 1)
-feature가 많을수록 과적합 조절에 유용하게 사용할 수 있는 파라미터입니다.
'ML' 카테고리의 다른 글
MLP와 RNN 알아보기 (0) | 2023.01.09 |
---|---|
RandomForest Algorithm (0) | 2022.12.21 |
머신러닝 공부를 위한 두 번째 정리 (0) | 2022.12.11 |
머신러닝 공부를 위한 첫 번째 정리 (1) | 2022.12.11 |