표본이 클수록 잡음은 줄어든다
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 22번째.
더 큰 표본은 더 나은 추정치를 제공합니다. 그런데 얼마나 더 나을까요? 여기에는 장바구니 25개의 평균 1000개와 장바구니 100개의 평균 1000개가 있습니다:
sample_means는 각 산포도를 측정합니다. 표준 오차인 std / np.sqrt(n)는 시뮬레이션 없이 산포도를 예측합니다:
for n in [25, 100]:
spread = sample_means(baskets, n, 1000).std()
print(n, np.round(spread, 2), np.round(baskets.std() / np.sqrt(n), 2))다음과 같이 출력됩니다:
25 3.43 3.45
100 1.72 1.72데이터는 4배, 노이즈는 절반: 제곱근이 작용한 결과입니다. 400개의 예제로 테스트한 모델의 점수는 100개의 예제로 테스트했을 때보다 두 배 더 정밀합니다.
챌린지
중급bags에는 제분소 밀가루 자루 5000개의 무게가 그램 단위로 들어 있습니다. 품질 관리 담당자는 매시간 표본의 무게를 재며, 프로그램은 허용되는 표준 오차를 입력받습니다.
- 표준 오차
bags.std() / np.sqrt(n)가 해당 값 이하가 되는 가장 작은n을 찾으세요. 1에서 시작해 너무 큰 동안 1씩 더하세요. - 확인하세요.
sample_means에서 표본 평균 300개의 표준 편차를 구하세요. - 아래와 같이 소수점 이하 2자리까지 출력하세요.
다른 제분소의 경우와 2.5를 입력했을 때:
Bags to weigh: 24
Standard error: 2.46 g
Simulated spread: 2.37 g직접 해보기
import numpy as np
target = float(input())
# 아래 줄은 변경하지 마세요: 각 밀가루 봉지의 무게(그램)
rng = np.random.default_rng(22)
bags = np.round(rng.normal(500, 8, size=5000), 1)
# Sample Means Vary에서 작성한 함수: count개 표본의 평균
def sample_means(data, size, count):
means = []
for i in range(count):
sample = rng.choice(data, size=size, replace=False)
means.append(sample.mean())
return np.array(means)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러