bagging이란?

1. bootstrap sampling

 

1-1) 주어진 하나의 data set에서 매 회 일부를 random sampling하여 여러 개의 data set을 구성하는 방법입니다.

 

 예를 들어 100개의 data가 존재하는 하나의 data set이 있을 때 530개씩 random dampling한다면 30, 30, 30, 30, 30개씩 데이터가 존재하는 총 5개의 dataset을 얻게 됩니다.

 

통계학적으로는 단 1set로 통계량을 추정하면 불확실하게 추정할 수 있는데 여러 set로 통계량을 추정하면 더욱 확실하게 추정할 수 있는 효과를 가집니다.

 

딥러닝에서는 데이터가 충분하지 않더라도 여러 데이터 set을 활용할 수 있으므로 ensemble효과를 가집니다.

 

1-2) 보통 여기까지는 다들 알고있지만 몇가지 더 알고있으면 좋은 것이 전체 dataset에서 random sampling을 할 때 1번 선택된 data set은 또 1번 선택될 수 있다는 점이 중요합니다.

 

직관적으로 이해하기 위해 예를 들어보겠습니다.

 

A,B,C,D,E가 들어간 data set에서 3개의 sample을 선택할 때 A,B,C를 선택할 수도 있지만

A,A,A도 선택할 수 있다는 뜻입니다.

 

그림1. bootstrap sampling 예시

 

그리고 이렇게 중복해서 선택이 가능하다는 점에서 또 하나 기억할 점은 전체 데이터 set과 같은 크기로 추출해도 된다는 의미를 가집니다.

 

무슨 말이냐면 100개의 dataset이 존재한다면 100개의 data5random sampling하여 총 500개의 bootstrap sampling을 얻을 수 있습니다.

 

100개 중에서 100개를 뽑는데 도대체 무슨 의미냐구요??? 그림 1처럼 한번 뽑은 데이터를 다시 한번 뽑을 수 있기 때문에 의미를 가집니다.

 

딥러닝에서는 data classimbalance할 때 사용할 수 있을 것입니다. 사과 이미지가 99장 있고 오렌지 이미지가 1장 있을 때 사과라고만 대답하면 무조건 99% 정확도를 얻게 됩니다.

 

이런 경우 bootstraping을 이용하여 오렌지 이미지를 늘리는 dataset을 얻거나 사과 이미지를 줄이는 bootstraping을 사용하여 model을 학습시키면 개선된 효과를 볼 수 있습니다.

 

1-3) 마지막으로 재밌는 성질을 하나 소개합니다.

 

만약 dataset이 충분히 크다면 동일한 크기의 bootstrap sampling을 수행할 때 최소한 관측된 값의 2/3bootstrap sample에 포함되는 성질을 가집니다.

 

n개의 data $x _{1} ,x _{2} ,....,x _{n}$이 존재하는 dataset에서 하나의 data를 뽑아 bootstrap sample을 구성할 확률은 ${1} \over {n}$이고 그렇지 않을 확률은 $1-\frac{1}{n}$입니다.

 

하나의 bootstrap sample을 구성하기 위해 총 n번 추출하므로 단 1번도 bootstrap sample에 구성되지 않을 확률은 $(1-\frac{1}{n})^{n}$입니다. 이 때 n이 충분히 크면 이 값은 $\frac{1}{e}$에 수렴한다고 알려져있습니다.

 

$e \approx 2.72$정도 이므로 수학적으로 관찰값의 $\frac{1}{3}$은 하나의 bootsrap sample에 포함되지 않는 성질이 있습니다.

 

딥러닝에 적용한다면 주어진 dataset에서 bootstraping을 충분하게 사용한다면 관찰값의 $\frac{2}{3}$training에 사용하고 사용되지 않은 $\frac{1}{3}$정도 되는 datavalidation에 사용할 수 있게 됩니다.

 

 

2. bagging

 

baggingbootstrapaggregating의 합성어로 주어진 data setbootstrap으로 여러개의 data sample set을 만들어냅니다.

 

만들어낸 data sample set 각각에 여러 modeltraining 시킵니다.

 

최종적으로는 training시킨 model들의 결정을 aggregating하여 최종결정을 내립니다.

 

최종결정을 내리는 방식에는 여러 가지가 있을 수 있지만 hard voting같이 다수결 결정이나 soft voting같이 예측한 확률벡터의 평균벡터를 구하는 방식이 있을 수 있겠습니다.

 

그림2. bagging을 설명하는 그림

 

3. 참조

 

Why on average does each bootstrap sample contain roughly two thirds of observations? - Cross Validated (stackexchange.com)

 

Why on average does each bootstrap sample contain roughly two thirds of observations?

I have run across the assertion that each bootstrap sample (or bagged tree) will contain on average approximately $2/3$ of the observations. I understand that the chance of not being selected in ...

stats.stackexchange.com

 

부트스트랩에 대하여 (Bootstrapping) – Learning Carrot (wordpress.com)

 

{{sp_post_title}}

{{sp_post_excerpt}}

learningcarrot.wordpress.com

 

 

'정형데이터' 카테고리의 다른 글

XGBoost 모델  (0) 2021.11.02
Gradient boosting 모형  (0) 2021.11.01
Adaboost 모형  (0) 2021.11.01
boosting에 대하여  (0) 2021.10.29
random forest 모형  (0) 2021.10.28
TAGS.

Comments