본문 바로가기

동아리

앙상블

여러개의 알고리즘을 사용, 그 예측을 결합해 보다 정확한 예측을 도출하는 기법.

단일의 강한 알고리즘보다 복수의 약한 알고리즘이 더 뛰어날 수 있다는 생각에 기반

보팅 / 배깅 / 부스팅 세 가지의 유형으로 나눌 수 있음 

 

보팅

여러 모델에서 구해진 예측값들을 투표를 통해 결정

서로 다른 알고리즘을 여러 개 결합해 사용

하드보팅

다수의 분류기가 예측한 결과값을 최종 결과로 선정 (다수결 원칙과 유사)

 

소프트 보팅

각 알고리즘이 예측한 레이블 값 결정 확률을 예측해서. 이것의 평균을 구한 뒤 가장 확률이 높은 레이블 값을 최종 결과로 선정.

1일 확률 = (0.7 + 0.2 + 0.8 + 0.9) / 4 = 0.65

2일 확률 = (0.3 + 0.8 + 0.2 + 0.1) / 4 = 0.35

1일 확률 > 2일 확률

 

배깅

Bootstrap Aggregating의 약자

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

모두 같은 유형의 알고리즘 사용

데이터 분할 시 중복 허용

배깅의 대표적인 방식이 Random Forest

 

부스팅

여러 개의 약한 학습기 (weak learner)를 순차적으로 학습,

예측하면서 잘못 예측한 데이터에 가중치를 부여해 오류를 개선해 나가면 학습하는 방식. 

알고리즘은 대표적으로 AdaBoost, GBM, XGBoost. LightGBM, CatBoost가 있다.

 

AdaBoost

 

2) 잘못 분류된 데이터에 대해 가중치를 부여(두 번째 그림에서 커진 + 표시)

3) 두 번째 약한 학습기가 두 번째 분류기준(D2)으로 + 와 - 를 다시 분류

4) 잘못 분류된 데이터에 대해 가중치를 부여(세 번째 그림에서 커진 - 표시)

5) 세 번째 약한 학습기가 세 번째 분류기준으로(D3)으로 + 와 - 를 다시 분류해서 오류 데이터를 찾음

6) 마지막으로 분류기들을 결합하여 최종 예측 수행

 

배깅 부스팅?

배깅은 병렬로 학습, 부스팅은 순차적으로 학습. 한번 학습이 끝나고 결과에 따라 가중치 부여. 가중치가 다음 모델의 결과 예측에 영향.

부스팅은 배깅에 비해 error가 적음. 즉 성능은 더 좋으나 속도가 느림.

'동아리' 카테고리의 다른 글

자바 3차시  (0) 2020.11.20
로지스틱 회귀  (0) 2020.11.15
나이브 베이즈  (0) 2020.09.24
SVM 알고리즘  (0) 2020.09.23
랜덤 포레스트  (0) 2020.09.23