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이 되는데 더 중요한 데이터를 더 학습하도록 변화한다.