Stack Building
Bagging, Boosting, Stacking 본문
약한 학습기 여러 개를 결합하여 하나의 학습기보다 좋은 성능을 보이고자 하는 기법이 '앙상블'이다. 동일한 학습기를 결합할 경우 앙상블이라고 하고, 다른 학습기를 결합할 경우 '스태킹'이라고 본다. 앙상블을 사용하면 학습에서 흔히 나타나는 두 가지 오류("높은 bias로 인한 Overfitting"과 "높은 Variance로 인한 Underfitting")를 개선할 수 있다.
1. 배깅 (Bootstrap Aggregating)
① 대상 데이터를 복원 랜덤 샘플링함
② 학습 후 분류함
③ 범주형인 경우 Voting, 연속형인 경우 Average로 집계
특징: 샘플을 여러 번 뽑아 각 모델을 병렬 학습한다. 대표적인 알고리즘은 Random Forest. 일반적인 모델을 만드는 것에 집중한다.
2. 부스팅
① 대상 데이터를 복원 랜덤 샘플링함. 단, 가중치를 부여함
② 학습 후 분류함
③ 학습이 끝난 후 나온 결과에 따라 가중치가 재분배함
특징: 순차적으로 학습이 진행된다. 오답에 더욱 집중하게 되어 정확도가 아주 높지만, Outlier에 취약하다. AdaBoost, XGBoost, GradientBoost 등 다양한 모델이 있으며 그 중에서도 XGBoost 모델은 강력한 성능을 보여주어 최근 Kaggle에서 자주 등장한다.
3. 스태킹 Meta Modeling
특징: 어마어마한 연산량. 완벽한 구현체는 아직 없음.
4. 참고
- Bagging과 Boosting 그리고 Stacking
- Boosting, Bagging, and Stacking — Ensemble Methods with sklearn and mlens
- A Comprehensive Guide to Ensemble Learning (with Python codes)
'머신러닝' 카테고리의 다른 글
[스크랩] 서포트 벡터 머신 (0) | 2019.09.09 |
---|---|
[스크랩] 잔차(residual)와 오차(error) (0) | 2019.08.15 |
[스크랩] 유클리드, 마할라노비스 거리 (0) | 2019.08.04 |
[스크랩] 확률과 가능도(우도) (0) | 2019.08.04 |
클러스터링 (k-means 알고리즘) (0) | 2019.06.11 |