앙상블 학습
From CS Wiki
Revision as of 10:26, 6 May 2020 by Itwiki (talk | contribs) (문자열 찾아 바꾸기 - "분류:데이터/통계학" 문자열을 "분류:데이터 과학" 문자열로)
- Ensemble Learning
- 하나의 데이터를 여러개의 분류기를 통해 다수의 학습 모델을 만들어 학습시키고 학습 결과를 결합함으로써 과적합을 방지하고 정확도를 높이는 학습 기법
유형
- 보팅: 앙상블 학습의 기본, 하위 모든 기법들이 보팅 사용
- 배깅: 하나의 데이터를 여러개로 나누어 학습하는 앙상블 학습법
- 보팅을 하나의 고유한 학습법으로 보고 배깅과 구분하자면, 일반적으로 보팅은 하나의 데이터에 여러 알고리즘 적용, 배깅은 여러개로 나누어진 데이터에 하나의 알고리즘을 적용하는 것으로 구분
- 하지만 여러개로 나누어진 데이터를 이용하는 배깅에서도, 최종 예측값을 선택하는 행위는 '보팅'이라 함
- 부스팅: 병렬로 수행되는 배깅과 달리, 각 결과값을 이용하여 순차적으로 결합
- 랜덤 포레스트: 배깅 + 의사결정 나무
보팅
- 여러 모델에서 구해진 예측값들을 대상으로 다수결 투표를하여 최종 클래스를 예측
- 하드 보팅과 소프트 보팅
하드 보팅 | 소프트 보팅 |
---|---|
예측 결과를 그대로 보팅 | 예측 확률의 평균값으로 보팅 |
배깅
- 배깅(Bagging)은 Bootstrap Aggregating의 줄임말로, 부트스트래핑을 이용한 앙상블 학습법
- 부트스트래핑과 패이스팅
- 부트스트래핑: 학습 데이터셋에서 중복을 허용하여 랜덤하게 추출하는 방식(aka. 리샘플링)
- 페이스팅: 학습 데이터셋에서 중복 없이 랜덤하게 추출하는 방식
- 부트스트래핑 장단점
- 장점: 분산 감소
- 단점: 중복으로 인해, 특정 샘플은 사용되지 않고 특정 샘플은 여러번 사용되어 편향될 가능성
- OOB(Out-of-Bag) 샘플: 샘플링 되지 않은 나머지 샘플
부스팅
- 성능이 약한 학습기(weak learner)를 여러 개 연결하여 순차적으로 학습함으로써 강한 학습기(strong learner)를 만드는 앙상블 학습기법
- 장단점
- 장점: 오답에 대해 높은 가중치를 부여하고 정답에 대해 낮은 가중치를 부여하여 오답에 더욱 집중
- 단점: 이상치(Outlier)에 취약
- 종류
종류 | 설명 |
---|---|
아다부스팅
(AdaBoost) |
|
그래디언트 부스팅
(Gradient Boosting) |
|
랜덤 포레스트
- 배깅을 적용한 의사결정 나무 앙상블 학습 기법