본문 바로가기
ML

# 2 앙상블 기법 배깅(Bagging) & 부스팅(Boosting)

by Kwonys 2023. 9. 21.
728x90
반응형

비복원 추출을 통한 앙상블

K-fold data split

  • 전체 데이터를 K개의 block으로 나누고 개별 모델을 서로 다른 (K-1)개의 subset에 대해 학습한 뒤 최종 결과를 결합
  • 충분한 다양성 확보가 어려움


복원 추출을 통한 앙상블

Bagging (Bootstrapp Aggregating)

샘플을 여러 번 뽑아(Bootstrap) 각 모델을 학습시켜 결과물을 집계(Aggregration)하는 방법

1. 데이터로부터 부트스트랩을 합니다. (복원 랜덤 샘플링)

2. 부트스트랩한 데이터로 모델을 학습시킵니다.

3. 학습된 모델의 결과를 집계하여 최종 결과 값을 구합니다.

Categorical Data는 투표 방식(Votinig)으로 결과를 집계하며, Continuous Data는 평균으로 집계합니다.

ex) 투표는 7개의 모델 중 4개가 A, 3개가 B를 예측헀다면 최종 결과로 예측 값을 A로 결정

      평균은 말 그대로 각 모델의 예측값에 평균을 취해 최종 Bagging Model의 예측값으로 결정

 

  • 앙상블의 각 모델은 서로 다른 학습 데이터셋을 이용
  • 각 데이터셋은 복원추출을 통해 원래 데이터의 수만큼의 크기를 갖도록 샘플링
  • 개별 데이터셋을 Bootstrap이라 부름
  • 이론적으로 한 개체가 하나의 Bootstrap에 선택되지 않을 확률 = 0.368
  • 개별 모델은 분산이 높고 편향이 낮은 알고리즘에 적합 (인공신경망 등)
  • Out of bag (OOB Error)
    • 배깅을 사용할 경우, 학습/검증 집합을 사전에 나누지 않고 Bootstrap에 포함되지 않는 데이터들을 검증 집합으로 사용

Boosting

부스팅은 배깅과 달리 모델 간 팀워크가 이루어집니다. 처음 모델이 예측을 하면 그 예측 결과에 따라 데이터에 가중치가 부여되고, 부여된 가중치가 다음 모델에 영향을 줍니다. 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계를 반복

  • 잘못 분류가 된 데이터는 가중치를 높여주고, 잘 분류된 데이터는 가중치를 낮추어 줍니다.

배깅과 부스팅의 차이점

  • 위 그림처럼 배깅은 병렬로 학습하는 반면, 부스팅은 순차적으로 학습
  • 부스팅은 배깅에 비해 error가 적음. 즉, 성능이 좋음. 하지만 속도가 느리고 오버 피팅이 될 가능성이 있음.
  • 개별 결정 트리의 낮은 성능이 문제라면 부스팅이 적합하고, 오버 피팅이 문제라면 배깅이 적합
  • 배깅의 대표적인 모델은 랜덤 포레스트가 있고, 부스팅의 대표적인 모델은 AdaBoost, Gradient Boost등이 있습니다.
728x90
반응형