1. 부스팅 알고리즘이란?
부스팅 알고리즘은 여러 개의 약한 학습기(weak learner)를 순차적으로 학습-예측하면서 잘못한 데이터나 학습 트리에 가중치 부여를 통해 오류를 보완하면서 학습하는 방식이다.
약한 학습기는 단독으로는 예측 성능이 그리 뛰어나지 않은 모델을 의미한다. 그러나 무작위 추정보다는 약간 더 나은 성능을 가진 학습 모델을 의미한다. 단일 모델로 사용할 경우 예측이 부정확할 수 있지만, 여러 개의 약한 학습기를 결합하여 더 강력한 예측 성능을 발휘할 수 있는 강한 학습기를 만들 수 있다.
2. 부스팅 알고리즘의 장점과 단점
부스팅 알고리즘의 장점
- 높은 예측 성능 : 여러 약한 학습기를 결합하여 강력한 예측 모델을 만들 수 있다.
- 유연성 : 분류, 회귀 등 다양한 머신러닝 문제에 적용 가능하다.
- 과적합 방지 : 정규화 등의 기법을 통해 과적합을 방지할 수 있다.
부스팅 알고리즘의 단점
- 학습 속도 : 순차적으로 약한 학습기를 학습시키기 때문에 학습 시간이 길어질 수 있다.
- 복잡성 : 모델의 해석이 어려울 수 있다.
3. 부스팅 알고리즘의 종류
1. AdaBoost (Adaptive Boosting)
- 약한 학습기를 순차적으로 학습시키고, 각 단계에서 잘못 분ㅌ류된 데이터 포인트의 가중치를 증가시켜 다음 학습기가 이들을 더 잘 예측하도록 하는 방식이다.
- 작동 방식
- 모든 데이터 포인트에 동일한 가중치를 부여하고 학습 시작한다.
- 약한 학습기를 학습시키고, 학습기가 예측한 결과에 따라 가중치를 업데이트 한다.
- 잘못 예측된 데이터 포인트의 가중치를 증가시키고, 올바르게 예측된 데이터 포인트의 가중치는 감소시킨다.
- 여러 단계의 학습을 반복하고, 최종적으로 각 학습기의 가중 평균을 통해 예측을 수행한다.
2. Gradient Boosting
- 각 단계에서 현재 모델의 예측 오류를 줄이는 방향으로 새로운 약한 학습기를 추가하는 방식이다. 주로 회귀 문제에 사용되지만, 분류 문제에도 적용할 수 있다.
- 작동방식
- 초기 모델 학습
- 현재 모델의 예측 값과 실제 값 간의 차이(잔차, residual)를 계산한다.
- 잔차를 예측하는 새로운 약한 학습기를 학습시킨다.
- 새로운 학습기를 현재 모델에 추가하여 업데이트한다.
- 이 과정을 여러 단계 반복하여 모델을 점진적으로 개선한다.
3. XGBoost(eXtreme Gradient Boosting)
- Gradient Boosting을 기반으로 한 알고리즘으로, 성능과 효율성을 높이기 위해 병렬 처리, 정규화, 트리 가지치기등 여러가지 기술적 개선을 포함하고 있다.
- 작동 방식의 경우 일반적인 Gradient Boosting과 동일하나 정규화 및 가지치기 마지막에 수행함으로써 과적합 방지 및 모델 복잡도를 제어한다.
4. LightGBM(Light Gradient Boosting Machine)
- LightGBM은 마이크로소프트에서 개발한 Gradient Boosting 알고리즘으로, 대규모 데이터셋에서의 학습 속도와 메모리 사용량을 최적화한 알고리즘이다.
- 특징
- 리프 중심 트리 분할(leaf-wise tree growth)방식을 사용하여 트리의 깊이가 깊어지더라도 효율적인 학습 가능
- 대용량 데이터셋 처리에 최적화된 메모리 사용
- GPU 지원을 통한 학습 속도 향상
5. CatBoos(Categorical Boosting)
- Yandex에서 개발한 Gradient Boostingㅇ 알고리즘으로, 범주형 변수 처리를 최저고하한 알고리즘이다.
- 특징
- 범주현 변수를 효과적으로 처리하는 알고리즘
- 데이터의 순서를 유지하며 학습하는 순차적 부스팅
- 기본적으로 과적합 방지 기법을 포함
'ML > 분류(Classification)' 카테고리의 다른 글
앙상블 학습 - 보팅 & 배깅 (0) | 2024.05.29 |
---|---|
앙상블 학습(Ensemble Learning) (0) | 2024.05.29 |
사용자 행동 인식(Human Activity Recognition) 데이터 세트를 활용한 결정트리 실습 (0) | 2024.05.22 |
결정트리의 과적합(Overfitting) (0) | 2024.05.07 |
특성 중요도(feature_importances_) (0) | 2024.04.22 |