Sampling이란 데이터 분석을 위해 일부 데이터를 가져오는 것을 Sampling(추출)이라고 한다. 샘플링에는 Random Sampling이 있는데 이는 인위적인 편향을 방지하기 위해 아무렇게나 가져오는 것을 Random Sampling(임의 추출)이라고 한다.
Sampling에는 총 4가지 방법이 있고, 오늘 내가 찾아본 부분은 그 4가지 중 Simple Random Sampling과 Systematic Sampling이다. 이 외에도 Cluster Sampling, Stratified Random Sampling이 있다
모집단에서 Sampling을 무작위로 하는 방법이다.
DataFrame.sample()을 통해서 무작위로 표본을 추출할 수 있다.
나는 도전과제 진행을 위해서 Numpy로 array를 생성한 뒤, 그 array를 가지고 진행해서 sample 메소드를 사용하지는 않았다.
# np.random.choice(data, size)
simple_sampling = np.random.choice(df, 5)
위의 코드를 실행하게 되면 simple_sampling 변수에 df에 들어있는 값 중 5개가 무작위로 선택 된 값들이 choice 메소드를 통해서 담기게 된다.
Systematic의 뜻은 조직적인, 계획적인 이라는 뜻을 가지고 있는 단어로 모집단에서 Sampling을 할 때 규칙을 가지고 추출하는 방법이다.
array의 경우 Dataframe으로 변환해서 진행하는 것이 편해보여서 나는 임의로 Dataframe으로 변환해서 과제를 진행했다.
def sys_sampling(df, step):
indexes = np.arange(0, len(df), step = step)
sys_sample = df.iloc[indexes]
return sys_sample
systematic_sample = sys_sampling(df, 3)
위의 코드처럼 sampling을 위한 함수를 만들어서 사용하면 쉽고 빠르게 사용할 수 있어서 편리하다