표집 분포
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 21번째.
비디오 세션은 오른쪽으로 치우쳐 있습니다. 대부분은 몇 분 동안 지속되지만, 일부는 두 시간 동안 진행됩니다. 그런데 40개 세션으로 구성된 1000개 표본의 평균은 종 모양을 이룹니다:
많은 표본 평균의 히스토그램은 표집 분포입니다. 각 표본에 충분한 값이 있으면, 데이터가 비대칭이더라도 모집단 평균을 중심으로 한 종 모양이 됩니다:
means = sample_means(sessions, 40, 1000) # Sample Means Vary에서 작성한 함수
ax.hist(means, bins=12)이것이 중심극한정리입니다. 이 정리는 평균을 예측 가능하게 만듭니다. 테스트 세트에서 모델의 평균 오차도 대략 정규분포를 따릅니다.
챌린지
중급클라우드 드라이브의 files에 있는 6000개 파일 크기(MB)는 오른쪽으로 치우쳐 있습니다. 문서는 많고 동영상은 몇 개뿐입니다. 프로그램은 표본 크기를 읽으며, 시작 코드에는 sample_means와 차트 두 개가 있습니다.
- 해당 크기로 표본 평균 500개를 구합니다.
- 파일의 평균에서 중앙값을 뺀 값, 이어서 표본 평균의 평균에서 중앙값을 뺀 값을 출력합니다(소수점 2자리).
axs[0]에는 파일의 히스토그램을,axs[1]에는 표본 평균의 히스토그램을 그리고,bins=12로 설정한 뒤 표시합니다.
다른 드라이브에서 60을 사용한 경우:
Files: mean - median = 25.28 MB
Sample means: mean - median = 0.55 MB그러면 Coddy가 각 차트를 보여 줍니다. 0에 가까운 차이는 치우침이 사라졌다는 뜻입니다.
직접 해보기
import numpy as np
import matplotlib.pyplot as plt
size = int(input())
# 아래 줄은 변경하지 마세요: 드라이브에 있는 각 파일의 크기(MB)
rng = np.random.default_rng(21)
files = np.round(rng.random(6000) ** 4 * 300 + 5, 2)
# 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)
fig, axs = plt.subplots(1, 2)
axs[0].set_title("All Files")
axs[0].set_xlabel("File size (MB)")
axs[1].set_title("Sample Means")
axs[1].set_xlabel("Mean file size (MB)")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러