[통계] 샘플링과 리샘플링이란?
샘플링 (Sampling)
샘플링은 모집단에서 임의의 sampling을 뽑아내는 것으로, 쉽게 말해 표본 추출을 의미한다.
샘플링을 하는 가장 큰 이유는 모집단 전체에 대한 조사는 사실상 불가능하기 때문에 Sampling을 이용하여 모집단에 대한 추론을 하게 되는 것이다.
주로 머신러닝과 통계분야에서 흔히 볼 수 있으며 신뢰구간, 오버피팅, 분산 등과 밀접한 관련이 있다.
여기서 알아둬야 할 것은 표본은 모집단을 닮은 모집단의 거울 같은 존재지만, 모집단 그 자체는 아니다.
그렇기 때문에 표본에는 반드시 원래 패턴에서 놓치는 부분(=표본오차)이 존재할 수 밖에 없다.
리샘플링(Resampling)
리샘플링은 내가 가지고 있는 샘플에서 다시 샘플 부분집합을 뽑아서 통계량의 변동성을 확인하는 것을 이야기한다.
즉, 같은 샘플을 여러 번 사용해서 성능을 측정하는 방식이다.
가장 많이 사용되는 방법이며 종류로는 k-fold 교차 검증, 부트스트래핑이 있다.
리샘플링은 표본을 추출하면서 원래 데이터 셋을 복원하기 때문에 이를 통해서 모집단 분포에 어떤 가정도 필요 없이 표본만으로 추론이 가능하다는 장점이 있다.
K-fold
K-fold는 k-1개의 부분집합들을 훈련 세트로 사용하고 나머지 하나의 부분집합을 테스트 세트로 사용하는 것을 말한다.이렇게 하면 아래의 그림처럼 k개의 훈련/테스트 세트가 만들어지고 k번의 훈련과 테스트를 거쳐 k개의 테스트 결과값의 평균을 얻을 수 있다.
평가 결가와 안정성과 정확도는 k값에 따라 달라진다. 일반적으로 k는 10으로 두고 검증하며, 10외에 5, 20이란 값도 자주 사용된다. 그리고 샘플을 나누는 과정에서 생길 수 있는 차별을 최소화 하기 위해 일반적으로 p번의 랜덤하게 반복하여 나누어 진행한다.
즉, k-fold는 최종적으로 p번의 k겹 교차 검증을 실행한 값의 평균을 말한다. 주로 10차 10겹 교차검증을 사용한다.
부트스트래핑
부트스트래핑(bootstrapping)은 m개의 샘플이 있는 데이터 세트 D를 가정한다면, 샘플링을 통해 데이터 세트 D'를 만든다. 매번 D에서 샘플 하나를 꺼내어 D'에 복사하여 넣는다. 그리고 다시 원래의 데이터 세트 D로 돌려보낸다. 이러한 과정을 m번 반복한 후 우리는 m개의 샘플이 들어있는 데이터 세트 D'를 얻는다. 이것이 부트스트래핑의 결과이다.
그러나 어떤 샘플은 아예 뽑히지 않을 수도 있는데, 수학적으로 계산하면 m번의 채집 과정 중 샘플이 한 번도 뽑히지 않을 확률은 (1-1)m/m이다. 극한값을 계산해본다면 아래와 같이 할 수 있다.
즉, 부트스트래핑을 사용하면 데이터 세트 D중 36.8%의 샘플은 D'에 들어가지 못하기 때문에 D'를 훈련 데이터로 D-D'를 데이터 세트로 사용할 수 있다. 이러한 테스트를 Out-of-Bag이라고 한다.
전체 내용 출처
샘플링과 리샘플링의 차이는 무엇일까?
샘플링과 리샘플링은 여러곳에 다양하게 사용되기 때문에 알아둬야 한다. 샘플링과 리샘플링에 대해 간단하게 알아보자.
kejdev.github.io
Statistics/Math - interview
목차 고유값(eigen value)와 고유벡터(eigen vector)에 대해 설명해주세요. 그리고 왜 중요할까요? 샘플링(Sampling)과 리샘플링(Resampling)에 대해 설명해주세요. 리샘플링은 무슨 장점이 있을까요? 1. 고유
woochan-autobiography.tistory.com