2018의 게시물 표시

Bagging

이미지
Bagging 본 포스팅은 고려대학교 강필성 교수님의 Business Analytics 수업의 내용과 수업자료를 참고하여 작성하였습니다. Introduction 배깅(bagging)은 앙상블 기법에서 주로 사용되는 방식으로, 분류(classification)와 회귀(regression) 문제를 다루기 위해 사용되는 기계학습 혹은 여타 다른 학습(e.g., SVM, decision tree)에서의 정확도와 안정성을 향상시키기 위해 고안된 훈련 방식이다. 배깅은 데이터를 랜덤하게 선별하여 준비하는 Bootstrapping 단계와 그 선별된 데이터로 훈련한 뒤 모델의 결과를 합쳐나가는 Aggregation의 단계로 나눌 수 있다. Algorithm Structure [그림 1] 전체 N개의 데이터 셋을 이용하여 훈련을 진행하는 과정 중 Bootstrapping과 Aggregation이 적용되는 단계를 나타낸다. Bootstrapping은 데이터를 분할하고, Aggregation은 모델 예측값을 취합한다. Bootstrapping Bootstrapping은 모든 데이터 N개를 훈련에 사용하기 전, 랜덤하게 k개의 소규모 셋으로 분할하여 준비하는 작업을 의미한다. (각 훈련데이터는 input x와 output y로 한쌍을 이룬다.) 예를들어 총 15개의 데이터셋(N=15)이 있다고 할 때, 이를 3개의 소규모 셋(k=3)으로 분할할 수 있으며 이 때, 각 소규모 셋에 들어가는 데이터들은 전체 데이터 셋에서 독립적으로 5개씩 랜덤하게 추출하게 된다. 따라서 각기 다른 소규모 셋에 중복된 데이터 셋이 존재할 수도 있으며 전체 소규모 셋에 한번도 등장하지 않는 데이터 셋도 존재할 수 있다. 다음의 애니메이션을 통해 bootstrapping 과정을 살펴볼 수 있다. [그림 2] 총 15개의 데이터를 이용하여 bootstrapping하는 과정을 보여준다. Aggregation Aggregation은 k...