Data/ML

7. 앙상블 학습 (Ensemble Learning)

뚱요 2021. 6. 14. 00:00
반응형

 

7. 앙상블 학습 (Ensemble Learning)

  • 여러 weak learner를 합쳐 하나의 Strong learner 로 좀 더 객관적인 결과를 얻음(일반화 성능, 안정성 향상,에러 감소)
  • single learner 보다 weak learner 합친것이 나음
  • 예. Boosting, Bagging ,Stacking

Ensemble 집계 방식 

1> Voting

  • 과반수 투표 (Majority voting)
  • 다수결 투표(Plurality Voting) : 최빈값(mode)

2> Aggregating

  • Average

Ensemble model

1) Bagging(Bootstrap AGGregatING): 동일한 모델 병렬 연결하여 일반화 (in parallel)

  • 샘플에서 복원추출(resampling)하여(Bootstraping) 각 모델을 학습시켜 결과를 집계(Aggregating)
  • 모델의 분산 감소
  • Random Forest : 랜덤요소 이용 DT를 집계하여 숲을 형성

2) Boosting: 동일한 모델  순차적 학습(adaptive) 하여 최종모델 선정 (Sequential)

  • 모델의 편향을 감소
  • Iterative strategy : 현재 약한 학습기는 이전 약한 학습기에 기반함
  • AdaBoost(가중치 이용), GradientBoost , XGBoost(eXtrem Gradient Boost)

3) Stacking: 서로 다른 알고리즘(heterogeneous weak learners)을 메타 러너를 이용 결합하여 장점과 단점 보안

  • 모델의 편향을 감소
  • KNN + Logistic Reg+ SVM ; meta model : neural network

1> Voting 

(1) 과반수 투표(Majority voting)

이진 클래스 분류기의 과반수(50% 이상 투표)가 예측한 클래스 레이블 선택

 

(2) 다수결 투표 (Plurality voting)

다중 클래스 개별분류기(Cj)에서 가장 많은 최빈값(mode)을 받은 클래스 레이블 선택

훈련 세트를 사용하여 m개의 다른 분류기를 훈련하여 가장 많은 표를 받은 레이블 선택

  • 여러 가지 알고리즘을 사용하여 구축
  • 같은 알고리즘으로 훈련세트의 다른 부분집합 eg.random forest: 서로 다른 결정 트리

가정

  • 동일한 에려율(error rate) ε(epsilon)을 가진 n 개의 분류기를 
  • 모든 분류기 독립적
  • 발생하는 오차는 서로 상관관계가 없음 
  • 분류기의 앙상블이 만드는 오차 확률을 이항 분포의 확률 질량 함수(probability mass function, pmf)

 

이항 계수 nCk: n개 원소에서 k 개는 뽑는 조합의 가짓수 

예측이 틀릴 확률 계산

error rate = 0.25

분류기 n=11

무작위 추측 0.5 >=개별 분류기 에러 >>항상 앙상블 에러 

여러 가지 분류기의 신뢰도에 가중치 부여 (w), 연결 ( 최빈값 예측한 분류기에는 작은 가중치 부여)

특정 데이터 셋에서 개별 분류기의 약점을 보완하느 강력한 메타 분류기 구축

 

분류 모델 성능 지표를 통한 해석 :  [머신러닝] - 분류 모델 성능 지표

2> 집계

 

 

Ensemble model : bagging, boosting, stacking

1) 배깅(Bagging, Bootstrap AggregatING)

샘플은 추정된 모수를 통해서 가져오고

각각의 bootstrap sample 사용하여 분류기 학습

 

 

원본 휸련세트에서 bootstrap 샘플을 뽑아서 사

 

2) 부스팅(Boosting)

분류하기 어려운 훈련 샘플에 초점, 잘못 분류된 훈련 샘플을 그다음 약한 학습기가 학습하여 앙상블 선을 향상

  1. 훈련 세트D에서 비중복 랜덤 샘플링을 통해 약한 학습기 C1훈련
  2. 훈련 세트 D에서 비중복 랜덤 샘플링을 시행하고 이전 1에서 잘못 분류된 샘플의 50%를 더해서 약한 학습기 C2 훈련
  3. 반복해서
  4. 약한 학습기 C1, C2... Cn을 다수결 투표로 연결

과대 적합하는 경향

AdaBoost(Adaptive Boosting): boosting에서 오차로 부처 점차적으로 학습하는 약한 학습기(weak learner)를 기반으로 하는 알고리즘

약한 학습기 훈련 시 훈련 세트 전체를 사용

반복 시 가중치가 다시 부여함. 이전 학습기의 실수를 학습

weak learner : 랜덤 추측의 성능보다 약간 좋은 성능을 갖는 학습기

 

성능을 향상시키기 위하여 다른 많은 형태의 학습 알고리즘과 결합하여 사용

다른 학습 알고리즘(약한 학습기, weak learner)의 결과물들을 가중치를 두어 더하는 방법으로 가속화 분류기의 최종 결과물을 표현할 수 있다. 

3) Stacking

서로 다른 알고리즘을 입력값과 출력값을 이용하여 메타 모델이 학습하여 예측값을 출력을 통해 결합함

 

머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로 목차

 

머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로 목차

<머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로 Python Machine Learning By Example, 2/E : Implement machine learning algorithms and techniques to build intelligent systems(Paperback, 2nd Edition)..

potato-potahto.tistory.com

Reference

https://towardsdatascience.com/ensemble-methods-bagging-boosting-and-stacking-c9214a10a205

반응형

'Data > ML' 카테고리의 다른 글

10.회귀 분석(Regression Analysis)  (0) 2021.06.23
8. 감정분석  (0) 2021.06.15
6. 모델 평가와 하이퍼파라미터 튜닝(미세조정)  (0) 2021.06.14
5.차원축소를 이용한 데이터 압축  (0) 2021.06.13
4. 데이터 전처리  (0) 2021.06.12