[멋사][AI] 앙상블(Ensemble)

티나(Tina)·2022년 11월 3일

멋사AI

목록 보기
17/41

앙상블(Ensemble)

결정트리의 단일 모델의 한계점을 해결하기 위해서 의사결정 나무를 여러개 만들어서 예측 결과를 종합하는 앙상블(Ensemble)알고리즘을 사용한다.

참고
앙상블 (Ensemble)의 기본 개념

여러 개의 weak learner들이 모여 투표 (voting)를 통해 더욱 더 강력한 strong learner를 구성한다.

많은 모델이 있기 때문에, 한 모델에서 예측을 엇나가게 하더라도, 어느 정도 보정이 된다.

즉, 보다 일반화된 (generalized) 모델이 완성되는 것!

Voting 의 종류

최종 모델의 예측값을 결정짓는 Voting은 크게 하드 보팅 (Hard voting) 과 소프트 보팅 (Soft voting)으로 나눌 수 있다.

하드보팅 (Hard voting)

각 weak learner들의 예측 결과값을 바탕으로 다수결 투표하는 방식

다수결의 원칙으로 빨간공으로 결정!

다수결의 원칙으로 빨간공으로 결정!

**소프트 보팅 (Soft voting)**

weak learner들의 예측 확률값의 평균 또는 가중치 합을 사용

  • 평균 (average) : 예측 확률값을 단순 평균내어 확률이 더 높은 클래스를 최종 예측값으로 결정
  • 가중치 합 (weighted sum) : weak learner들에 대한 신뢰도가 다를 경우, 가중치를 부여하여 확률값의 평균이 아닌 가중치 합을 사용 가중치는 임의로 부여할 수도 있고, 뒤에서 다시 언급할 스태킹 (Stacking) 기법을 사용할 수도 있다.

평균 : 파란공을 예측한 분류기가 높은 확률로 파란공을 예측해서 최종 예측값이 파란공이 된다.

평균 : 파란공을 예측한 분류기가 높은 확률로 파란공을 예측해서 최종 예측값이 파란공이 된다.

앙상블의 종류

  • 배깅(Bagging)
  • 부스팅 (Boosting)
  • 스태킹 (Stacking)

배깅 (Bagging)

배깅 (Bagging)은 Bootstrap Aggregating의 약자이다.

배깅은 부트스트랩을 통해 만들어진 여러 데이터셋을 바탕으로 weak learner를 훈련시킨 뒤, 결과를 voting 한다.

  • 부트스트랩(Bootstrap) 부트스트랩이란 주어진 데이터셋에서 random sampling 하여 새로운 데이터셋을 만들어내는 것을 의미한다. https://tyami.github.io/assets/images/post/ML/2020-10-06-ensemble/2020-10-06-bootstrap.png
  • Bagging Ensemble의 대표 예시 : Random Forest

부스팅 (Boosting)

부스팅 (Boosting)은 반복적으로 모델을 업데이트해나간다.

이전 iteration의 결과에 따라 데이터셋 샘플에 대한 가중치를 부여하고, 반복할 때마다 각 샘플의 중요도에 따라 다른 분류기가 만들어지게 된다.

부스팅은 모든 iteration에서 생성된 모델의 결과를 voting한다.

Boosting은 다시 Adaptive Boosting (AdaBoost) 와 Gradient Boosting Model (GBM) 계열로 나눌 수 있다.

스태킹 (Stacking)

Random Forest

https://tyami.github.io/assets/images/post/ML/2020-10-07-random-forest/2020-10-07-random-forest-overview.png

  • 주어진 데이터셋으로부터 Random sampling을 통해 subset을 생성. sampling되는 데이터는 중복을 허용
  • Bootstrap을 통해 생성된 각각의 데이터셋에 대한 Decision tree들을 구성
  • 각 Decision tree의 예측 결과를 voting하여 최종 예측값을 얻는다.
profile
열심히 사는 중

0개의 댓글