최근에 친구들과 대화를 나누다가 우연히 Boosting이라는 단어가 대화에 등장하였습니다. 제게는 이름은 많이 들어봤는데 정확히 뭔지는 모르는 알고리즘으로 느껴졌습니다. 그 자리에 있던 친구들 모두 정확한 정의를 몰라서 찾아보려 하는데, B로 시작하는 용어들이 또 있던 것 같은 느낌이 들었습니다. 그래서 이번 글에서는 공부할 겸 겸사겸사 각 단어의 의미에 대해 알아보려 합니다.
구글링 결과 비슷한 고민을 한 사람이 있음을 Quora에서 알게 되었습니다. What is the difference between boost, ensemble, bootstrap and bagging?이라는 글이었습니다. 해당 글의 답변을 바탕으로 정리해봅시다.
일단 boosting, bagging, stacking은 ensemble 기법 중 하나입니다.
Bagging
Bootstrap aggregating이라고도 불립니다. 주어진 데이터에 대해 bootstrapping으로 여러개의 자료를 생성합니다. 각 bootstrapping으로 얻어진 모델들을 활용하여 equal weight vote를 시행하면 ensemble의 효과와 함께 좋은 모델을 만들 수 있게 됩니다. Variance를 줄어들어 과적합을 방지합니다.
Boosting
Boosting은 잘못 분류된 개체들에 대해 더 집중하여 학습합니다. 전 모형에서 오분류된 개체들에 대한 가중치를 높여 다음 모델을 학습하는 것입니다. Weak learner 여러 개를 합쳐 strong learner를 만드는 방법이라고 할 수 있습니다. Bias와 variance를 줄이는 것에 사용됩니다. Weighted majority voting(분류 문제)나 weighted sum(회귀 문제)를 통해 해당 작업을 진행하며 Ada boost와 Gradient boosting이 대표적인 방법이라고 합니다.
Stacking
개별 모델이 예측한 결과를 학습 데이터로 활용하는 모델을 2단계로 설게하여 최종 결과를 산출합니다.
Bootstrapping
Bootstrapping은 Bagging, Boosting, Stacking과는 다릅니다. Bootstrapping은 sample을 만드는 방법의 한 종류입니다.
단일 랜덤 표본에서 복원으로 여러 표본을 가져와서 표본 추출 분포를 추정하는 방법입니다. 표본 수와 동일한 크기로 반복 추출합니다. 전체 데이터의 일부(보통 2/3)만을 추출하고 나머지는 out-of-bag instance라고 칭하며 사용하지 않는 방법입니다. Train 과정에서 out-of-bag instance가 제외되기 때문에 따로 cross validation할 필요 없이 out-of-bag instance로 evaluation을 할 수 있습니다.
출처
- https://www.quora.com/What-is-the-difference-between-boost-ensemble-bootstrap-and-bagging
- https://www.pluralsight.com/guides/ensemble-methods:-bagging-versus-boosting
- https://www.researchgate.net/publication/335156833_SSEM_A_Novel_Self-Adaptive_Stacking_Ensemble_Model_for_Classification/figures?lo=1&utm_source=google&utm_medium=organic
- https://blogs.sas.com/content/iml/2018/12/12/essential-guide-bootstrapping-sas.html
'Machine Learning' 카테고리의 다른 글
Type of Attention (어텐션의 종류) (0) | 2022.12.27 |
---|---|
MinCutPool: 코드 분석 (MinCutPool: Understanding the Code) (0) | 2022.02.12 |
MinCutPool: 이론편2 (MinCutPool: Understanding the Theory 2) (0) | 2022.02.12 |
MinCutPool: 이론편1 (MinCutPool: Understanding the Theory 1) (0) | 2022.02.12 |
Einsum 입문하기 (Introduction to Einsum) (0) | 2022.01.25 |