Machine Learning

[Machine Learning] 앙상블 학습 (Ensemble Learning): 배깅 (Bagging)과 부스팅 (Boosting)

joo_ 2022. 5. 17. 18:54

여러 개의 약 분류기 (weak classifier)를 결합하여 강 분류기(strong classifier)를 만드는 것

 

[배깅 (Bagging)]

- 데이터로부터 부트스트랩을 하고 부트스트랩한 데이터로 모델을 학습시킴. 학습된 모델의 결과를 집계하여 최종 결과 값을 구하는데 categorical data는 투표 방식 (voting)으로 결과를 집계하고 continuous data는 평균으로 집계함

- 간단하면서 파워풀한 방법으로 랜덤 포레스트가 배깅 기법을 활용한 모델

 

[부스팅 (Boosting)]

- 가중치를 활용하여 약 분류기를 강 분류기로 만드는 방법

- 배깅은 Decision Tree1과 Decision Tree2가 독립적으로 결과를 예측하여 여러 개의 독립적인 결정 트리가 각각 값을 예측한 뒤, 그 결과 값을 집계해 최종 결과 값을 예측하는 방식

- 부스팅은 모델 간 팀워크가 이루어져, 처음 모델이 예측을 하면 그 예측 결과에 따라 데이터에 가중치가 부여되고, 부여된 가중치가 다음 모델에 영향을 줌

- 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계를 반복함

 

[배깅과 부스팅 차이]

- 배깅은 병렬로 학습, 부스팅은 순차적으로 학습

- 한번 학습이 끝난 후 결과에 따라 가중치 부여

- 오답에 대해서는 높은 가중치를 부여하고 정답에 대해서는 낮은 가중치를 부여함

- 부스팅은 배깅에 비해 error가 적어 성능이 좋지만 속도가 느리고 오버 피팅이 될 가능성이 있음

- ex. AdaBoost, XGBoost, GradientBoost 등 다양한 모델

 

+ Stacking: 서로 다른 모델들을 조합해서 최고의 성능을 내는 모델을 생성함

 

 

[출처1] https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-11-%EC%95%99%EC%83%81%EB%B8%94-%ED%95%99%EC%8A%B5-Ensemble-Learning-%EB%B0%B0%EA%B9%85Bagging%EA%B3%BC-%EB%B6%80%EC%8A%A4%ED%8C%85Boosting

[출처2] https://swalloow.github.io/bagging-boosting/