또자의 코딩교실

[스마트인재개발원] 머신러닝 - 앙상블 모델_Voting, Stacking, Bagging, Boosting 본문

코딩공부/머신러닝 & 딥러닝

[스마트인재개발원] 머신러닝 - 앙상블 모델_Voting, Stacking, Bagging, Boosting

또자자 2021. 12. 11. 17:38

blog thumbnail

이번 포스팅에서는 머신러닝에 있어 정확도를 올리기 위한 앙상블모델들에 대해 알아보자.

Ensemble Model
= 여러 머신러닝 모델을 연결하여 더 강한 모델을 만드는 기법.
=Voting, Stacking, Bagging, Boosting의 방법으로 동작한다.

우선 앙상블 모델이 동작하는 대표적인 방법 4개에 대하여 알아보자.


Voting 방식

Voting
- 서로 다른 여러개의 학습 모델을 사용하여 평과 결과를 투표하는 방식.
- Hard Voting과 Soft Voting의 두가지 방식이 있다.
1. Harding Voting
= 여러개의 Sample data에서 나온 예측 결과 값 중 다수결으로 훨씬 표가 많은 값을 최종 예측값으로 결정한다. 
2. Soft Voting
= Sample data에서 나온 예측 결과 값 중 각각 모델마다 label값이 나올 확률을 계산한다.

Hard Voting

Hard Voting

= 여러개의 Sample data에서 나온 예측 결과 값 중 다수결으로 훨씬 표가 많은 값을 최종 예측값으로 결정한다. 

 

Soft Voting

 

Soft Voting (Hard Voting보다 대체적으로 더 정확도가 높다.)

= Sample data에서 나온 예측 결과 값 중 각각 모델마다 label값이 나올 확률을 계산한다.

그 후 모든 모델에서 나온 label값의 답 확률을 모은 뒤 최종 평균값을 계산한다.

그 후 최종 평균값 중 더 확률이 높은 label값을 최종 예측값으로 선정한다. 

 

Stacking
- 서로 다른 여러개의 학습 모델을 사용하여 취합된 학습 결과를 훈련 데이터로 다시 학습하는 것.
Staking
Bagging
- 약간씩 다른 독립된 훈련 데이터 세트를 여러개 생성하는 것으로 머신러닝의 결과 분산을 줄이는 알고리즘
- Bootstrap Aggregation 의 줄임말. 각 모델이 서로 독립적으로 돌아가는 병렬 앙상블 모델이다.
- 유사한 데이터를 생성해 Variance가 감소한다. (=과대적합 방지)
- 무작위로 선택한 변조된 데이터를 많이 만든다.
  기존 train data에 꽉 맞게 짜여진 모델이 아니게 되어 과대적합을 줄일 수 있다.
- 복잡하고 데이터 수가 적은 모델에 잘 어울린다.
- 이산 데이터(=분류)인 경우는 투표(Voting)방식, 연속 데이터(=회귀)인 경우는 평균으로 집계함. 
- 대표 알고리즘 : Random Forest
Bagging
- 작동 과정 :
1. 분석용 데이터로부터 n개의 BootStrap 데이터 추출(동일 크기)
2. BootStrap데이터에 적합한 모델을 적용하여 n개의 단일 분류자 생성
3-1. if=분류) n개의 단일분류자 중 다수결을 통하여 최종 모델 결정
3-2. if=회귀) n개의 단일분류자 의 label값의 평균으로 최종 label값 결정
Boosting
- 이전 데이터의 오차를 고려하여 데이터의 가중치를 변경하면서 여러 번 반복 추출하여 활용하는 머신러닝 모델
- 일반적으로 학습 데이터의 개수가 작을 때 사용
- 단순하고 데이터 수가 많은 모델에 잘 어울린다.
- 연속 앙상블(이전 모델의 오차를 고려)
- 오차를 감소시킨 데이터를 생성해 Bias가 감소한다. (=과소적합 방지)
- 정답과 가까운 데이터를 많이 만들어 기존 데이터의 부족한 부분을 채워 과소 적합을 방지할 수 있다.
- 대표 알고리즘 : AdaBoost, Gradient Boosting, Xgboost
Boosting
- 작동 과정 :
1. 약간씩 다른 독립된 훈련 데이터 세트를 여러개 생성한다.
2. 데이터가 정답에 비슷하다면 가중치를 낮춘다. 틀렸다면 가중치를 올린다. (오답을 더 학습)
3. 가중치들이 서로 변화하며 random_split이 되는데 더 중요한 데이터를 더 학습하도록 변화한다.
비교 Bagging Boosting
특징 각 모델이 서로 독립적으로 label값 생성 모델이 서로 상호작용해 오답을 더 학습
작동 방식 기존 데이터에 변조사항이 추가되어진 유사한 데이터를 무작위로 생성 같은 데이터를 여러번 학습하며
오답에 가중치를 높여 다음 학습을 진행
작동 방식의 결과 과대적합 방지 과소적합 방지
적합한 상황 모델이 간단하며 데이터수가 많을 경우  모델이 복잡하며 데이터수가 적을때
대표 알고리즘 Random Forest AdaBoost, Gradient Boosting, Xgboost

 

Comments