Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- intent
- 안드로이드
- 국비지원
- 하이퍼파라미터튜닝
- semantic_segmentation
- 손실함수
- KNN모델
- 취업성공패키지
- springSTS
- ERD
- 내일배움카드
- 머신러닝
- 교차검증
- 1차프로젝트
- 오픈소스깃허브사용
- JSP/Servlet
- 프로젝트
- randomForest
- 비스포크시네마
- 백엔드
- MSE
- 크롤링
- 취업연계
- 2차프로젝트
- 선형모델 분류
- MVCmodel
- 2차 실전프로젝트
- 활성화함수
- gitclone
- 스마트인재개발원
Archives
- Today
- Total
또자의 코딩교실
[스마트인재개발원] 머신러닝 - 앙상블 모델_Voting, Stacking, Bagging, Boosting 본문
코딩공부/머신러닝 & 딥러닝
[스마트인재개발원] 머신러닝 - 앙상블 모델_Voting, Stacking, Bagging, Boosting
또자자 2021. 12. 11. 17:38
이번 포스팅에서는 머신러닝에 있어 정확도를 올리기 위한 앙상블모델들에 대해 알아보자.
Ensemble Model
= 여러 머신러닝 모델을 연결하여 더 강한 모델을 만드는 기법.
=Voting, Stacking, Bagging, Boosting의 방법으로 동작한다.
우선 앙상블 모델이 동작하는 대표적인 방법 4개에 대하여 알아보자.
Voting
- 서로 다른 여러개의 학습 모델을 사용하여 평과 결과를 투표하는 방식.
- Hard Voting과 Soft Voting의 두가지 방식이 있다.
1. Harding Voting
= 여러개의 Sample data에서 나온 예측 결과 값 중 다수결으로 훨씬 표가 많은 값을 최종 예측값으로 결정한다.
2. Soft Voting
= Sample data에서 나온 예측 결과 값 중 각각 모델마다 label값이 나올 확률을 계산한다.
Hard Voting
= 여러개의 Sample data에서 나온 예측 결과 값 중 다수결으로 훨씬 표가 많은 값을 최종 예측값으로 결정한다.
Soft Voting (Hard Voting보다 대체적으로 더 정확도가 높다.)
= Sample data에서 나온 예측 결과 값 중 각각 모델마다 label값이 나올 확률을 계산한다.
그 후 모든 모델에서 나온 label값의 답 확률을 모은 뒤 최종 평균값을 계산한다.
그 후 최종 평균값 중 더 확률이 높은 label값을 최종 예측값으로 선정한다.
Stacking
- 서로 다른 여러개의 학습 모델을 사용하여 취합된 학습 결과를 훈련 데이터로 다시 학습하는 것.
Bagging
- 약간씩 다른 독립된 훈련 데이터 세트를 여러개 생성하는 것으로 머신러닝의 결과 분산을 줄이는 알고리즘
- Bootstrap Aggregation 의 줄임말. 각 모델이 서로 독립적으로 돌아가는 병렬 앙상블 모델이다.
- 유사한 데이터를 생성해 Variance가 감소한다. (=과대적합 방지)
- 무작위로 선택한 변조된 데이터를 많이 만든다.
기존 train data에 꽉 맞게 짜여진 모델이 아니게 되어 과대적합을 줄일 수 있다.
- 복잡하고 데이터 수가 적은 모델에 잘 어울린다.
- 이산 데이터(=분류)인 경우는 투표(Voting)방식, 연속 데이터(=회귀)인 경우는 평균으로 집계함.
- 대표 알고리즘 : Random Forest
- 작동 과정 :
1. 분석용 데이터로부터 n개의 BootStrap 데이터 추출(동일 크기)
2. BootStrap데이터에 적합한 모델을 적용하여 n개의 단일 분류자 생성
3-1. if=분류) n개의 단일분류자 중 다수결을 통하여 최종 모델 결정
3-2. if=회귀) n개의 단일분류자 의 label값의 평균으로 최종 label값 결정
Boosting
- 이전 데이터의 오차를 고려하여 데이터의 가중치를 변경하면서 여러 번 반복 추출하여 활용하는 머신러닝 모델
- 일반적으로 학습 데이터의 개수가 작을 때 사용
- 단순하고 데이터 수가 많은 모델에 잘 어울린다.
- 연속 앙상블(이전 모델의 오차를 고려)
- 오차를 감소시킨 데이터를 생성해 Bias가 감소한다. (=과소적합 방지)
- 정답과 가까운 데이터를 많이 만들어 기존 데이터의 부족한 부분을 채워 과소 적합을 방지할 수 있다.
- 대표 알고리즘 : AdaBoost, Gradient Boosting, Xgboost
- 작동 과정 :
1. 약간씩 다른 독립된 훈련 데이터 세트를 여러개 생성한다.
2. 데이터가 정답에 비슷하다면 가중치를 낮춘다. 틀렸다면 가중치를 올린다. (오답을 더 학습)
3. 가중치들이 서로 변화하며 random_split이 되는데 더 중요한 데이터를 더 학습하도록 변화한다.
비교 | Bagging | Boosting |
특징 | 각 모델이 서로 독립적으로 label값 생성 | 모델이 서로 상호작용해 오답을 더 학습 |
작동 방식 | 기존 데이터에 변조사항이 추가되어진 유사한 데이터를 무작위로 생성 | 같은 데이터를 여러번 학습하며 오답에 가중치를 높여 다음 학습을 진행 |
작동 방식의 결과 | 과대적합 방지 | 과소적합 방지 |
적합한 상황 | 모델이 간단하며 데이터수가 많을 경우 | 모델이 복잡하며 데이터수가 적을때 |
대표 알고리즘 | Random Forest | AdaBoost, Gradient Boosting, Xgboost |
'코딩공부 > 머신러닝 & 딥러닝' 카테고리의 다른 글
[스마트인재개발원] 딥러닝 - 개요 (0) | 2021.12.17 |
---|---|
[스마트 인재개발원] Linear Model(선형 회귀모델)과 선형모델 평가요소 (0) | 2021.12.13 |
[스마트인재개발원] 머신러닝 - 정규화 (0) | 2021.12.09 |
[스마트인재개발원]머신러닝 - 교차검증 (0) | 2021.12.08 |
[스마트인재개발원] 머신러닝 - Decision Tree 알고리즘(실습과 함께) (0) | 2021.12.08 |
Comments