Bootstrap

1 minute read

Bootstrap

이번 포스팅에서는 머신 러닝에서 활용되는 BOOTSTRAP에 대해 알아보고자 합니다.

우선 ‘Bootstrapping’이라는 용어는 통계학에서 활용되는 개념입니다. 간단히 설명하자면, 전체 N개의 데이터 중에서 m개를 뽑은 후 그것의 평균을 구합니다. 이 절차를 반복하면, 해당 평균값들의 분포를 구할 수 있게 됩니다. (단, m개를 뽑을 때에는 중복을 허용합니다.)

Q1) 머신 러닝에서 ‘Bootstrap’은 무엇인가요?
A1) 랜덤 샘플링을 통해서 training data를 늘리는 방법입니다.

Q2) ‘Bootstrap’은 왜 쓰나요?
A2) training data의 갯수를 늘려서 분류 모델의 성능을 향상시키기 위한 목적으로 활용됩니다.

Q3) 어떤 방식으로 훈련 데이터를 늘리나요?
A3) 예제를 한번 보시죠

6개의 데이터를 가진 데이터 셋. 샘플링 사이즈 4.
Dataset : [1, 2, 3, 4, 5, 6]

데이터를 선택하는 횟수를 총 4번을 통해 아래와 같은 샘플을 얻었습니다. 중복을 허용하기 때문에, 같은 숫자가 여러번 뽑힐 수 있습니다. 해당 샘플에서는 3이 두 번 뽑혔습니다.
Sample = [1,3,3,6]

뽑힌 위 샘플은 훈련 데이터로 활용되며, 뽑히지 않은 샘플들은 테스트 데이터로 활용됩니다.

train = [1,3,3,6]
test = [2,4,5]
model = fit(train)
statistic = evaluate(model, test)

이렇게 계산된 statistic 샘플을 제공하기 위해 30번 이상 반복할 수 있습니다. 그런 다음 30번 이상 계산되어 나온 statistic 샘플을 활용하여 평균, 표준 편차 등으로 활용하여 최종 사용 가능한 추정 수치로 제공합니다.

statistics = [ 1번 결과, 2번 결과, 3번 결과, …., 30번 결과 ]
estimate = mean(statistics)

이렇게 반복되는 샘플 생성을 통해 다수의 통계값을 얻게 되고, 그 통계값들로부터 측정값을 구하는 흐름입니다.