배깅(bagging)은 bootstrap aggregating의 줄임말입니다.
배깅의 알고리즘에 대해서 먼저 배워보도록 하겠습니다.
배깅을 이해하기 쉽게 하기 위해서, 그림을 하나 그려보았습니다.
배깅을 크게 3개의 단계로 구성됩니다.
(1) Random Sampling
우선 Raw Data로 부터 동일한 크기의 표본 자료를 N번 Random sampling 합니다.
그러면 N개의 Train dataset을 만들 수 있습니다.
이를 붓스트랩 (bootstrap) 자료를 생성한다고 정의합니다.
(2) Training
위 절차에서 생성된 N개의 붓스트랩 자료들을 활용해서, N개의 모델을 학습합니다.
(3) Prediction
N개의 모델을 모두 활용하여, Prediction 값을 얻습니다.
Regression의 경우, Input을 N개의 모델에 넣고, 각 output의 평균을 Prediction 값으로 정의합니다.
Classification의 경우, Input을 N개의 모델에 넣고, 각 output class를 voting하여, 가장 많이 나온 class를 Prediction 값으로 정의합니다.
이처럼 Bagging의 알고리즘에는 크게 어려운 점이 없습니다.
그렇다면 Bagging을 통해 얻을 수 있는 장점은 무엇일까요??
배깅은 일반적으로 예측 모형의 변동성이 큰 경우, 그 변동성을 줄이기 위해서 사용합니다.
쉽게 예를 들어서, 우리가 수학 시험을 본다고 가정합시다.
굉장히 어려운 문제가 출제되었습니다.
이 어려운 문제를 혼자 푸는 것보다는 10명이 함께 푸는 것이 그 문제를 맞출 확률이 더 높겠죠??
이러한 원리로, 모델을 여러개 구성하는 것입니다.
'데이터 다루기 > 머신러닝 이론' 카테고리의 다른 글
[Machine Learning] AdaBoost (0) | 2020.09.27 |
---|---|
[Machine Learning] Boosting (부스팅) (0) | 2020.09.21 |
[Machine Learning] Elastic Net (0) | 2019.12.09 |
[Machine Learning] ROC 곡선 및 AUC (0) | 2019.12.07 |
[Machine Learning] Confusion Matrix (0) | 2019.12.07 |