표본인가 모집단인가?
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 4번째.
양봉가가 벌통 5개의 꿀 무게를 kg 단위로 측정했습니다. NumPy와 pandas는 표준편차에 대해 서로 다른 값을 반환합니다:
values = [18, 22, 25, 19, 26]
print(np.round(np.std(values), 2))
print(np.round(pd.Series(values).std(), 2))다음과 같이 출력됩니다:
3.16
3.54둘 다 같은 제곱 편차를 더한 다음 나눕니다:
n으로 나누는 것은 모집단에 적합합니다. 그 안의 모든 값이 포함되기 때문입니다. 표본은 자체 평균에 가까우므로 퍼짐 정도가 작아 보입니다. n - 1은 이를 보정합니다.
ddof=1을 사용하면 NumPy가 표본 공식을 적용합니다. np.std(a, ddof=1)은 pandas와 같은 결과를 냅니다. 모델 데이터는 표본입니다. 도구 간 표준 편차가 다르다면 버그가 아니라 ddof 때문입니다.
챌린지
쉬움한 생물학자가 박쥐 몇 마리의 날개 폭(단위: cm)에 대해 서로 다른 표준편차를 얻었습니다. 시작 코드는 값을 배열 spans와 Series column에 읽어 들이며, 검사 결과로 False를 출력합니다.
- 박쥐는 표본입니다. 두 도구 모두 표본 표준편차를 출력하도록 NumPy 줄을 수정하세요.
- 그 아래에 NumPy의 기본값인
np.std(spans)가column.std()보다 얼마나 작은지 소수점 둘째 자리까지 출력하세요.
날개 폭이 33, 27, 30, 35, 29인 경우:
Sample std: 3.19 cm, tools agree: True
Dividing by n underestimated it by 0.34 cm직접 해보기
import numpy as np
import pandas as pd
n = int(input())
values = []
for i in range(n):
values.append(int(input()))
spans = np.array(values)
column = pd.Series(values)
# 이 검사는 False를 출력합니다. 두 도구가 모두 표본 표준편차를 구하도록 NumPy 줄을 수정하세요
numpy_std = np.round(np.std(spans), 2)
pandas_std = np.round(column.std(), 2)
print(f"Sample std: {numpy_std} cm, tools agree: {numpy_std == pandas_std}")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러