본문 바로가기
IT/ML

Bootstrap sampling (Bootstrapping, 부트스트랩 샘플링) 쉽게 이해하기

by 모던네이쳐 2020. 11. 3.
728x90

 Bootstrap (부트스트랩)은 데이터 내에서 반복적으로 샘플을 사용하는 resampling 방법 중 하나이다.

 다른 resampling 방법인 K-Fold Cross Validation은 다음 글에서 자세히 확인할 수 있다.

 

K-Fold Cross Validation (교차검증) 쉽게 이해하기

 K-Fold Cross Validation (교차검증)은 데이터 내에서 반복적으로 샘플을 사용하는 resampling 방법 중 하나이다. 그렇다면 교차검증을 사용하는 이유 및 방법을 알아보자. Cross Validation 사용하는 이유  

modern-manual.tistory.com

 Bootstrap을 이해하기 전에, 장화의 손잡이 부분을 의미하는 bootstrap이라는 단어가 왜 사용되었는지 그 기원이 재미있다. The Adventures of Baron Munchausen(바론의 대모험)이라는 책을 보면 주인공 바론이 늪에 빠지게 되는데 이때 자신의 장화 끝 단(bootstrap)을 잡아 올라 스스로 늪에서 빠져나오는 장면이 나온다. 사실 작용 반작용의 법칙에 따라 불가능한 일이지만 논리는 차치하고, 이 일화처럼 스스로를 구해낸다는 뜻으로 bootstrap이라는 단어가 사용되었다. 실제로 bootstrap sampling이 보이는 결과를 보면 의미가 꽤나 잘 맞는다는 것을 알 수 있다.

 

 참고로, 개발자가 되기 위해 다양한 교육과정이 있는데 국비지원이 가능한 곳도 몇 곳이 있으니 코딩에 관심이 있다면 지원해보는 것도 커리어에 도움이 된다. 공고 기회가 있을때 확인해보시길 바란다.

국비지원 코딩교육 확인하기>>

 

 

Bootstrap sampling 사용하는 이유

 Bootstrap sampling을 하면 애초에 한 개 밖에 없었던 우리들의 sample data set을 n개의 sample data set을 가지고 있는 것과 같은 효과를 누릴 수 있게 한다. 이를 통해 우리는 data의 variance를 상당히 잘 근사 할 수 있는 결과를 볼 수 있다.

 

 

Bootstrap sampling 하는 방법

 Bootstrap sampling을 하는 방법은 매우 간단하다. N개의 sample data를 가지고 있을 때 1000개의 bootstrap samples를 만들고자 하면, 복원 추출을 N번 실행하여 새로운 sample data set을 만들고 이 작업을 1000번 반복하면 된다.

 아래 그림은 N=3인 original data로, N번의 복원 추출을 각각 시행하여 총 B개의 bootstrap data set을 만든 것을 볼 수 있다.

 

 

 

 

Bootstrap sampling

 

 

Bootstrap sampling 특징

 우리가 가진 original data set은 모집단의 표본으로, 실제 모집단을 추정하는 estimated population이라고 볼 수 있다. Estimated population에서 bootstrapping을 수행하면 실제 population에서 random sampling한 실제 데이터와 매우 비슷한 분포를 보이는 것을 볼 수 있다. 나의 샘플 데이터 셋에서 복원 추출한 데이터 셋들이 실제 모집단에서 추출한 데이터 셋들과 비슷하다는 놀라운 결과이다.

 아래 주황색 그림은 실제 모집단에서의 샘플들의 분포이고, 파란색 그림은 bootstrapping한 샘플들의 분포이다. 두 분포가 상당히 비슷한 것을 볼 수 있다. 이러한 특징으로 인해 위에 언급한 것과 같이 data의 variance를 추정하는 데에 아주 유용하다.

 

Histogram of the true population and bootstrap samples

 

 또 한가지의 특징으로, bootstrap을 사용하면 중복이 허용되기에 확률적으로 sample data의 2/3 정도의 data만 사용하게 된다. 이러한 특징을 사용하여 sample data에 사용되지 않은 나머지 1/3을 validation에 사용할 수 있다.

 

K-Fold Cross Validation은 다음글에서 확인할 수 있다.

 

K-Fold Cross Validation (교차검증) 쉽게 이해하기

 K-Fold Cross Validation (교차검증)은 데이터 내에서 반복적으로 샘플을 사용하는 resampling 방법 중 하나이다. 그렇다면 교차검증을 사용하는 이유 및 방법을 알아보자. Cross Validation 사용하는 이유  

modern-manual.tistory.com