Bootstrap method에 대한 짧은 소개

Bootstrap method는  모집단에 대한 통계를 추정하는 데 사용되는 리샘플링 기술로서 대체(replacement)를 사용하여 데이터 세트를 샘플링하는 방식입니다.

이는 평균 또는 표준 편차와 같은 요약 통계량을 추정하는 데 사용할 수 있습니다. 응용 머신러닝에서 학습 데이터에 포함되지 않은 데이터에 대한 예측을 수행할 때 머신러닝 모델의 기술을 추정하는 데 사용됩니다.

머신러닝 모델 기술 추정 결과의 바람직한 속성은 추정된 기술이 교차 검증과 같은 다른 method에서는 쉽게 사용할 수 없는 기능인 신뢰 구간으로 제공될 수 있다는 것입니다.

이 자습서에서는 보이지 않는 데이터에 대한 머신러닝 모델의 기술을 추정하기 위한 Bootstrap 리샘플링 method를 알아봅니다.

이 자습서를 완료하면 다음을 알 수 있습니다.

  • Bootstrap method에는 대체를 사용하여 데이터 세트를 반복적으로 리샘플링하는 작업이 포함됩니다.
  • Bootstrap을 사용할 때 샘플의 크기와 반복 횟수를 선택해야합니다.
  • scikit-learn은 Bootstrap method에 대한 데이터 세트를 리샘플링하는 데 사용할 수 있는 함수를 제공합니다.

튜토리얼 개요

이 튜토리얼은 다음과 같이 4 부분으로 나뉩니다. 

  1. Bootstrap method
  2. Bootstrap 구성
  3. 작업 예
  4. Bootstrap API

Bootstrap method

Bootstrap method는 여러 개의 작은 데이터 표본에서 추정치를 평균화하여 모집단에 대한 수량을 추정하는 통계 기술입니다.

중요한 것은 큰 데이터 샘플에서 한 번에 하나씩 관측치를 만들고 이것을 선택한 후 데이터 샘플로 반환하여 생성된다는 것입니다. 이렇게 하면 주어진 관측치가 주어진 작은 표본에 두 번 이상 포함될 수 있습니다. 샘플링에 대한 이러한 접근 방식을 교체를 통한 샘플링이라고 합니다.


하나의 샘플을 작성하는 프로세스는 다음과 같이 요약할 수 있습니다.

  1. 샘플의 크기를 선택합니다.
  2. 샘플의 크기가 선택한 크기보다 작은 경우
    1. 데이터셋에서 관측치를 임의로 선택
    2. 샘플에 추가


Bootstrap method를 사용하여 모집단의 양을 추정할 수 있습니다. 이것은 반복적으로 작은 샘플을 취하고, 통계를 계산하고, 계산된 통계의 평균을 취함으로써 수행됩니다. 이 절차를 다음과 같이 요약 할 수 있습니다.

  1. 수행할 여러 Bootstrap 샘플 선택
  2. 표본 크기 선택
  3. 각 Bootstrap 샘플에 대해
    • 선택한 크기로 대체하여 샘플을 그립니다.
    • 표본에 대한 통계량 계산
  4. 계산된 표본 통계량의 평균을 계산합니다.

이 절차를 사용하여 머신러닝 모델의 기술을 예측할 수도 있습니다.

Bootstrap은 주어진 추정기 또는 통계 학습 method과 관련된 불확실성을 정량화하는 데 사용할 수 있는 널리 적용 가능하고 매우 강력한 통계 도구입니다.

— 187페이지, 통계학습 입문, 2013.

이 작업은 샘플에서 모델을 학습하고 샘플에 포함되지 않은 샘플에 대한 모델의 기술을 평가하여 수행됩니다. 주어진 샘플에 포함되지 않은 이러한 샘플을 out-of-bag samples 또는 줄여서 OOB라고 합니다.

Bootstrap method를 사용하여 모델의 기술을 추정하는 이 절차는 다음과 같이 요약할 수 있습니다.

  1. 수행할 여러 Bootstrap 샘플 선택
  2. 표본 크기 선택
  3. 각 Bootstrap 샘플에 대해
    1. 선택한 크기로 대체하여 샘플을 그립니다.
    2. 데이터 표본에 모형 피팅
    3. OOB 샘플에 대한 모델의 기술을 추정합니다.
  4. 모형 기술 추정치의 표본 평균을 계산합니다.

선택되지 않은 샘플은 일반적으로 “out-of-bag” 샘플이라고 합니다. Bootstrap 리샘플링의 지정된 반복에 대해 모델은 선택한 샘플을 기반으로 작성되며 out-of-bag 샘플을 예측하는 데 사용됩니다.

— 페이지 72, 응용 예측 모델링, 2013.

중요한 것은 모델을 피팅하거나 모델의 하이퍼파라미터를 조정하기 전에 모든 데이터 준비가 데이터 샘플의 for-loop 내에서 발생해야 한다는 것입니다. 이는 테스트 데이터 세트에 대한 지식이 모델을 개선하는 데 사용되는 데이터 유출을 방지하기 위한 것입니다. 그러면 모델 기술을 낙관적으로 추정할 수 있습니다.

Bootstrap method의 유용한 특징은 추정의 결과 샘플이 종종 가우스 분포를 형성한다는 것입니다. 이 분포를 중심 경향으로 요약하는 것 외에도 표준 편차 및 표준 오차와 같은 분산 측정을 제공 할 수 있습니다. 또한, 신뢰 구간을 계산하여 제시된 추정치를 제한하는데 사용할 수 있습니다. 이는 머신러닝 모델의 예상 기술을 제공할 때 유용합니다.


Bootstrap 구성

Bootstrap을 수행할 때 선택해야하는 두 가지 매개 변수가 있습니다 : 샘플의 크기와 수행할 절차의 반복 횟수.


샘플 크기

머신러닝에서는 원래 데이터 세트와 동일한 샘플 크기를 사용하는 것이 일반적입니다.

Bootstrap 샘플의 크기는 원래 데이터 집합과 동일합니다. 결과적으로 일부 샘플은 Bootstrap 샘플에서 여러 번 표시되고 다른 샘플은 전혀 선택되지 않습니다.

— 페이지 72,응용 예측 모델링, 2013.

데이터 세트가 방대하고 계산 효율성이 문제인 경우 데이터 세트 크기의 50% 또는 80%와 같이 더 작은 샘플을 사용할 수 있습니다.


반복

반복 횟수는 표본에서 평균, 표준 편차 및 표준 오차와 같은 의미 있는 통계를 계산할 수 있을 만큼 충분히 커야 합니다.

최소 20회 또는 30회 반복할 수 있습니다. 더 작은 값을 사용할 수 있으면 추정된 값의 표본에서 계산된 통계에 분산이 추가됩니다.

이상적으로, 추정치의 표본은 수백 또는 수천 번의 반복으로 시간 자원이 주어지면 가능한한 커질 것입니다.


작업 예

우리는 작은 작업 예제를 사용하여 Bootstrap 절차를 구체적으로 만들 수 있습니다. 절차의 한 반복을 통해 작업합니다.

6 개의 관측치가 있는 데이터 세트가 있다고 상상해보십시오.

첫 번째 단계는 샘플의 크기를 선택하는 것입니다. 여기서는 4를 사용합니다.

다음으로 데이터 세트에서 첫 번째 관측치를 무작위로 선택해야 합니다. 0.2를 선택합시다.

이 관측치는 데이터 세트로 반환되고 이 단계를 3번 더 반복합니다.

이제 데이터 샘플이 있습니다. 이 예제에서는 동일한 값이 샘플에서 0번, 1번 이상 나타날 수 있음을 의도적으로 보여 줍니다. 여기서 관측값 0.2는 두 번 나타납니다.

그런 다음 추출된 샘플에 대해 추정치를 계산할 수 있습니다.

표본에 대해 선택되지 않은 관측치는 표본 외 관측치로 사용될 수 있습니다.

머신러닝 모델을 평가하는 경우 모델은 그려진 샘플에 적합하고 OOB 샘플에서 평가됩니다.

이것으로 절차의 한 반복을 마칩니다. 계산된 통계량의 표본을 제공하기 위해 30회 이상 반복할 수 있습니다.

그런 다음 이 통계 표본은 평균, 표준 편차 또는 기타 요약 값을 계산하여 요약하여 통계의 최종 사용 가능한 추정치를 제공할 수 있습니다.


Bootstrap API

Bootstrap method를 수동으로 구현할 필요가 없습니다. scikit-learn 라이브러리는 데이터 세트의 단일 Bootstrap 샘플을 만드는 구현을 제공합니다.

resample() scikit-learn 함수를 사용할 수 있습니다. 데이터 배열, 대체로 샘플링 할지 여부, 샘플의 크기 및 샘플링 전에 사용된 의사 난수 생성기의 시드값을 인수로 사용합니다.

예를 들어, 4개의 관측값으로 대체된 샘플을 생성하고 의사 난수 생성기에 값 1을 사용하는 Bootstrap을 만들 수 있습니다.

안타깝게도 API에는 적합 모델을 평가하기 위한 테스트 세트로 사용할 수 있는 OOB 관측값을 쉽게 수집할 수 있는 메커니즘이 포함되어 있지 않습니다.

적어도 일변량의 경우에는 간단한 파이썬 목록 이해를 사용하여 OOB 관측값을 수집할 수 있습니다.

이 모든 것을 이전 섹션의 작업 예제에서 사용된 작은 데이터 세트와 함께 연결할 수 있습니다.

예제를 실행하면 Bootstrap 샘플의 관측값과 OOB 샘플의 관측값이 인쇄됩니다.


확장

이 섹션에는 탐색할 수 있는 자습서를 확장하기 위한 몇 가지 아이디어가 나열되어 있습니다.

  • Bootstrap method를 사용하여 추정할 수 있는 3가지 요약 통계를 나열합니다.
  • Bootstrap method를 사용하여 머신러닝 모델의 성능을 평가하는 3개의 연구 논문을 찾습니다.
  • 자체 함수를 구현하여 Bootstrap method를 사용하여 샘플과 OOB 샘플을 만듭니다.

이러한 확장 기능을 탐색하면 알고 싶습니다.


추가 정보

이 섹션에서는 더 자세히 알아보려는 경우 주제에 대한 더 많은 리소스를 제공합니다.

게시물



API


기사

요약

이 자습서에서는 보이지 않는 데이터에 대한 머신러닝 모델의 기술을 추정하기 위한 Bootstrap 리샘플링 method를 발견했습니다.

특히 다음 내용을 배웠습니다.

  • Bootstrap method에는 대체를 사용하여 데이터 세트를 반복적으로 리샘플링하는 작업이 포함됩니다.
  • Bootstrap을 사용할 때 샘플의 크기와 반복 횟수를 선택해야합니다.
  • scikit-learn은 Bootstrap method에 대한 데이터 세트를 리샘플링 하는 데 사용할 수 있는 함수를 제공합니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.