앙상블 기법
IT 위키
더 많은 작업
(앙상블 학습에서 넘어옴)
- Ensemble Learning
- 하나의 데이터를 여러개의 분류기를 통해 다수의 학습 모델을 만들어 학습시키고 학습 결과를 결합함으로써 과적합을 방지하고 정확도를 높이는 학습 기법
- 보팅: 앙상블 학습의 기본, 하위 모든 기법들이 보팅 사용
- 배깅: 하나의 데이터를 여러개로 나누어 학습하는 앙상블 학습법
- 보팅을 하나의 고유한 학습법으로 보고 배깅과 구분하자면, 일반적으로 보팅은 하나의 데이터에 여러 알고리즘 적용, 배깅은 여러개로 나누어진 데이터에 하나의 알고리즘을 적용하는 것으로 구분
- 하지만 여러개로 나누어진 데이터를 이용하는 배깅에서도, 최종 예측값을 선택하는 행위는 '보팅'이라 함
- 부스팅: 병렬로 수행되는 배깅과 달리, 각 결과값을 이용하여 순차적으로 결합
- 랜덤 포레스트: 배깅 + 의사결정 나무
- 배깅(Bagging)은 Bootstrap Aggregating의 줄임말로, 부트스트래핑을 이용한 앙상블 학습법
- 부트스트래핑과 패이스팅
- 부트스트래핑: 학습 데이터셋에서 중복을 허용하여 랜덤하게 추출하는 방식(aka. 리샘플링)
- 페이스팅: 학습 데이터셋에서 중복 없이 랜덤하게 추출하는 방식
- 부트스트래핑 장단점
- 장점: 분산 감소
- 단점: 중복으로 인해, 특정 샘플은 사용되지 않고 특정 샘플은 여러번 사용되어 편향될 가능성
- OOB(Out-of-Bag) 샘플: 샘플링 되지 않은 나머지 샘플
- 성능이 약한 학습기(weak learner)를 여러 개 연결하여 순차적으로 학습함으로써 강한 학습기(strong learner)를 만드는 앙상블 학습기법
- 장단점
- 장점: 오답에 대해 높은 가중치를 부여하고 정답에 대해 낮은 가중치를 부여하여 오답에 더욱 집중
- 단점: 이상치(Outlier)에 취약
- 종류
| 종류 | 설명 |
|---|---|
| 아다부스팅
(AdaBoost) |
|
| 그래디언트 부스팅
(Gradient Boosting) |
|
- 배깅을 적용한 의사결정 나무 앙상블 학습 기법
- 대표적인 앙상블 기법은 배깅, 부스팅, 스태킹이고, 배깅을 확장한 랜덤 포레스트가 있다 → 배깅, 부스팅
- 여러 모형의 예측을 결합해 예측값의 분산을 줄이고 과적합을 막아 정확도를 높인다. 분산을 유지하는 것이 아니다.
- 결합하는 모형들이 서로 다양할수록(상호 연관성이 낮을수록) 효과가 크다. 상호 연관성이 높으면 같은 실수를 반복하므로 정확도가 잘 오르지 않는다.
- 랜덤 포레스트는 목표 변수를 쓰는 지도 학습 기법이다.
- 앙상블이 단일 모델보다 항상 좋은 것은 아니다. 해석이 어려워지고 계산량이 늘며, 자료에 따라 단일 모델과 차이가 없을 수도 있다.
| 구분 | 보팅(Voting) | 배깅(Bagging) | 부스팅(Boosting) |
|---|---|---|---|
| 기본 모델 | 서로 다른 알고리즘 여러 개 | 같은 알고리즘 여러 개 | 같은 알고리즘(약한 학습기) 여러 개 |
| 학습 데이터 | 같은 데이터 | 부트스트랩 표본(중복 허용 복원 추출) | 앞 모델이 틀린 샘플에 가중치를 더한 데이터 |
| 학습 순서 | 병렬 | 병렬 | 순차 |
| 결합 | 하드: 예측 클래스의 다수결 / 소프트: 예측 확률의 평균 | 투표(분류) 또는 평균(회귀) | 모델별 가중 결합 |
| 주된 효과 | 서로 다른 모델의 약점 보완 | 분산 감소 | 편향 감소 |
| 대표 예 | 로지스틱 회귀 + SVM + 의사결정 나무 결합 | 랜덤 포레스트 | AdaBoost, GBM, XGBoost |
- 보팅은 서로 다른 알고리즘을 결합한다. "같은 알고리즘 여러 개를 쓴다" 는 배깅의 설명이다.
- 하드 보팅은 각 모델이 낸 클래스로 다수결을 하고, 확률의 평균으로 고르는 것은 소프트 보팅이다.
- 랜덤 포레스트는 배깅에 변수 무작위 선택을 더한 배깅 계열이다. 부스팅 방식이 아니다.




