[Machine Learning] 앙상블 학습 (Ensemble Learning): 배깅 (Bagging)과 부스팅 (Boosting)
여러 개의 약 분류기 (weak classifier)를 결합하여 강 분류기(strong classifier)를 만드는 것
[배깅 (Bagging)]
- 데이터로부터 부트스트랩을 하고 부트스트랩한 데이터로 모델을 학습시킴. 학습된 모델의 결과를 집계하여 최종 결과 값을 구하는데 categorical data는 투표 방식 (voting)으로 결과를 집계하고 continuous data는 평균으로 집계함
- 간단하면서 파워풀한 방법으로 랜덤 포레스트가 배깅 기법을 활용한 모델
[부스팅 (Boosting)]
- 가중치를 활용하여 약 분류기를 강 분류기로 만드는 방법
- 배깅은 Decision Tree1과 Decision Tree2가 독립적으로 결과를 예측하여 여러 개의 독립적인 결정 트리가 각각 값을 예측한 뒤, 그 결과 값을 집계해 최종 결과 값을 예측하는 방식
- 부스팅은 모델 간 팀워크가 이루어져, 처음 모델이 예측을 하면 그 예측 결과에 따라 데이터에 가중치가 부여되고, 부여된 가중치가 다음 모델에 영향을 줌
- 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계를 반복함
[배깅과 부스팅 차이]
- 배깅은 병렬로 학습, 부스팅은 순차적으로 학습
- 한번 학습이 끝난 후 결과에 따라 가중치 부여
- 오답에 대해서는 높은 가중치를 부여하고 정답에 대해서는 낮은 가중치를 부여함
- 부스팅은 배깅에 비해 error가 적어 성능이 좋지만 속도가 느리고 오버 피팅이 될 가능성이 있음
- ex. AdaBoost, XGBoost, GradientBoost 등 다양한 모델
+ Stacking: 서로 다른 모델들을 조합해서 최고의 성능을 내는 모델을 생성함