(확률적) 표본 추출의 종류
[단순 임의 추출]
- Simple Random Sampling
- 별도의 규칙이 존재하지 않은 보통의 임의 추출
ex) 여 50, 남 50 -> 20 추출-> 남 20 만 뽑을 수도 있음
단순임의추출은 편향적이라, 이를 보완한 방법이 층화표본추출
[층화 표본 추출]
- Stratified Random Sampling
- 군집별로 지정한 비율만큼의 데이터를 임의추출
[계통 추출]
- Systematic Sampling
- 첫 표본을 무작위로 추출하고 표집 간격 k 만큼 떨어진 곳의 데이터 추출
[군집 추출]
- Cluster Sampling
- 소수의 군집으로 분할하고 일정의 소집단을 임의 표본 추출
ex) 5개 조 중에 2조만 뽑아서 발표시킬 거야
Pandas - sample(n, frac, random_state)
- 단순임의 추출을 수행하는 메서드
- n: 표본 개수, frac: 비율, random_state: 표본 추출 결과를 고정(seed, 샘플링의 재현성을 보장)
- groupby()를 추가하면 층화표본추출가능 (1.0 버전부터 가능)
- Numpy 버전에 따라 결과 다를 수 있음
- 호출: import pandas as pd
- pandas.nunique() 함수 사용
- groupby()를 추가하면 층화표본추출 가능
위에서 sample()만 썼을 때 모두 동일한 'season' 값만 나올 수도 있는데 (단순임의추출)
groupby()를 추가하여 모든 데이터의 n 개씩 추출할 수 있음 (층화표본추출)
- frac: 비율
- len / shape [0] : row 개수 동일 결과 반환
scikit-learn(사이킷런) - train_test_split 함수
- 입력 데이터프레임이나 배열을 학습용(train) 데이터와 테스트용(test) 데이터로 나누는 함수
- tran_size or test_size에 개수 or 비율을 입력하여 표본 개수 조절
- random_state : 표본 추출 결과 고정
설치: pip install scikit-learn
호출: from sklearn.model_selection import train_test_split
( 데이터 분석 툴을 제공하는 scikit-learn 패키지 중 model_selection에는 데이터 분할을 위한 train_test_split 함수가 있음)
Returns
-------
splitting : list, length=2 * len(arrays)
List containing train-test split of inputs.
- train_size, test_size 둘 중 하나만 명시해 주면 len 결과는 동일
'Data Science > 실습' 카테고리의 다른 글
DS 실습 11- 상관분석(Pandas.corr, scipy) (0) | 2024.12.05 |
---|---|
DS 실습9~10-데이터전처리(정렬 및 변환-crosstab, sort_values, melt/ def) (0) | 2024.12.01 |
DS 실습6~8- 데이터전처리(결측치,이상치,파생변수,데이터병합) (0) | 2024.11.24 |
DS 실습4- Numpy, pandas(Series,DataFrame)* (2) | 2024.11.22 |
DS 실습1~3- Python 기본문법 (0) | 2024.11.22 |