Bagging, Boosting, Bootstrapping
Bagging, Boosting, Bootstrapping의 세가지 용어가 기계학습에서 자주 사용되는데, 자주 개념이나 뜻이 헷갈려서 정리해본다.
1. Bagging : Bootstrap Aggregating의 줄임말이다.
그런데 이것의 의미는 먼저 원래 데이터에 대해서 여러개의 작은 데이터셋 N개를 샘플링해서 만든다음, 각각의 데이터를 작은 모델 N개로 학습을 시킨다. 그 다음 학습된 N개의 모델을 모두 하나로 합쳐서 최종적인 모델로 사용하는(bag에 담는 느낌) 방법론을 의미한다.
(병렬적으로 데이터를 나누어 여러 개의 모델을 동시에 학습시킴)
http://m.blog.naver.com/muzzincys/220201299384
2. Boosting : Boosting은 Bagging과 다르게 먼저 간단한 모델(weak classifier 1번)로 전체 데이터를 학습시킨다. 그런데 이 모델은 복잡도가 매우 작기 때문에 상당수의 데이터에 대해 큰 에러를 갖는다. 그러면 데이터 중에서 에러가 큰, 즉 학습이 제대로 되지 않은 데이터들을 모아서 다시 새로운 간단한 모델(weak classifier 2번)로 다시 학습을 시킨다. 이러한 방식으로 순차적으로 학습을 진행하여, 마지막에는 그동안 학습된 모델들을 모아서 최종적인 모델로 만든다.
(못맞춘 데이터에 대해서만 순차적으로 학습시켜서 여러개의 모델을 학습함. 그래서 bagging에 비해서 상대적으로 속도가 많이 느리다. 그 전 모델의 학습이 끝나야 다음 모델학습이 가능하기 때문.)
3. Bootstrapping : Bootstrapping is a technique used to iteratively improve a classifier's performance.
즉 self-improvement 하는 모델을 bootstrap한다고 이야기한다. 즉 1, 2번보다 훨씬 추상적이고 포괄적을 쓰일 수 있는 단어이다.