반응형

ML에서의 Bootstrap

부트스트랩이라는 단어는 머신러닝에서 랜덤포레스트를 구축할 때 많이 들어봤습니다. 랜덤포레스트는 배깅 앙상블을 사용하며 배깅의 정확한 명칭은 Bootstrap aggregating입니다. 랜덤포레스트는 무작위의 트리를 생성하여 앙상블하는 방법을 사용하는데 각각의 트리를 만들기 위해 먼저 데이터의 부트스트랩 샘플을 생성합니다. 다시 말해 n개의 데이터 포인트에서 무작위로 n개의 샘플을 반복 추출합니다(한 샘플이 중복 추출될 수 있습니다). 추출 후 여러개의 트리를 만든 후 예측들을 평균하여 최종 예측을 만듭니다. 이것이 ML에서 사용하는 부트스트랩입니다. 그렇다면 통계에서 사용되는 부트스트랩의 의미는 무엇일까요?

 

통계에서의 Bootstrap

https://uc-r.github.io/bootstrapping

통계에서 사용되는 부트스트랩은 ML에서 사용되는 방법과 비슷합니다. 그렇다면 왜 부트스트랩을 사용할까요? 예를 들어 한국남자의 평균몸무게를 알고싶다고 할 떄 모든사람의 몸무게를 측정할 수 없으니 일부(N명)를 표본추출해 측정합니다. 여기서 우리는 단일표본(N)의 평균을 얻을 수 있습니다. 그렇다면 이 평균이 한국남자의 평균몸무게를 대표할 수 있을까요? 물론 단일표본의 크기가 전체한국남자와 비슷하다면 그럴 수 있지만, 대부분의 경우는 그럴 수 없습니다. 이 때 부트스트랩을 사용합니다. 

 

5명의 남자의 몸무게가 있습니다. [70kg, 75kg, 77kg, 90kg, 105kg] 여기서 부트스트랩을 사용해 3개의 표본을 만들면 아래와 같이 만들어집니다. 부트스트랩은 랜덤 샘플링(중복추출가능)을 통해 추출합니다.

1. [70kg, 70kg, 70kg, 90kg, 105kg] 

2. [75kg, 77kg, 90kg, 105kg, 105kg] 

3. [90kg, 90kg, 90kg, 105kg, 105kg] 

 

그런 다음 모든 부트스트랩 된 데이터 세트를 사용하여 원하는 통계량의 표준 오차 및 신뢰구간을 계산할 수 있습니다.

 

 

반응형

'통계' 카테고리의 다른 글

Rand index란?  (2) 2020.05.08
통계개념  (0) 2019.11.18
ROC curve?  (0) 2019.11.09
혼돈행렬(confusion matrix)에 대해 알아보자  (2) 2019.11.07
가설검정 그리고 귀무가설과 대립가설은 무엇인가?  (0) 2019.10.18

+ Recent posts