Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 통계학
- 파이썬
- 지연평가
- 넓이 우선 순회
- chirpy
- beatuifulsoup4
- 2023운전면허
- simple-regression model
- ruby error
- 병렬처리
- 비용이슈
- re
- 깃헙 블로그 오류
- list
- 평가지표
- Selenium
- ChatGPT
- Python
- 중복성검사
- re.compile
- LinkedLists
- 정규표현식 조건문
- de
- GPT-4
- AWS
- 벌크업데이트
- reverse_lazy
- githubblog
- 다중 선형 회귀
- 정규표현식
Archives
- Today
- Total
용사냥꾼69
np.random.choice 으로 구현하는 부트스트랩(bootstrapping) 본문
728x90
부트스트랩
간단히 말해서 현재 가진 데이터를 활용하여 더 큰 범위의 집단을 파악하는 것이다.
대부분의 통계학에서 쓰이는 기법이 다 그렇듯이, 비용과 효율의 현실적인 문제로 인하여 쓰인다고 본다
np.random.choice
np.random.choice 공식문서 에 따르면
np.random.choice(a, size, replace, p)로 총 4개의 매개변수가 들어가는데
- a 는 샘플 추출을 할 데이터를 말하며
- size 는 한 번에 추출할 샘플의 크기
- replace 는 True일 경우 복원 추출이며 기본값이 True이다.
- p 는 데이터 내의 원소들이 각각 추출될 확률이다. 기본값은 모두 같은 확률.
aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random
dtype='<U11')
예제처럼 pooh가 3번 같이 나온 것을 보면 복원추출이 되었다는 것을 확인할 수 있다.
기능 구현
이를 활용하여 부트스트랩을 구현하면
sample_of_10 = []
np.random.seed(10) # 같은 결과의 재생산을 위하여 seed를 배정한다. 엄밀히 말해서 완전한 무작위적인 난수는 아님
for _ in range(10000):
sample = np.random.choice(data, 10)
sample_of_10.append(sample.mean())
다음과 같고, 이는 10개의 표본을 복원추출하여 평균을 낸 값을 10000개를 생성한 것이다.
이러한 부트스트래핑을 이용하여 우리는 모수에 대한 추정이 가능하다.
유의점
그러나, 당연히 100% 신뢰성을 지닐 수는 없으며 이에 따라서 신뢰구간으로 오차에 대한 언급을 해줘야 한다.
ex) 여론 조사로 A 후보에 대한 지지율의 평균이 24%일 때,
신뢰구간 95% 구간이 20%와 28%라면
A후보의 지지율은 24%이며 신뢰수준 95%에 표본오차는 ±4%라고 말한다.
'파이썬 > 파이썬-AI 기본' 카테고리의 다른 글
F1 Score와 AUC Score는 각각 언제 사용하는가? (0) | 2023.02.18 |
---|---|
코랩에서 파이썬 그래프가 안그려질 때 (0) | 2023.02.16 |
re.VERBOSE, re.X 로 정규표현식에 주석 달기 (0) | 2023.02.16 |
베이지안 정리를 사용하는 상황에 대한 이해 (0) | 2023.02.15 |
파이썬으로 문자열 치환하기, 문자 하나만 바꾸는 경우 (0) | 2023.02.15 |
Comments