Menu
CoddyTech

분산과 표준편차

Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 3번째.

.std()는 평균으로부터의 일반적인 거리입니다. 여기서는 에스프레소 샷 5개에 대해 직접 계산합니다:

26초의 주황색 평균선을 기준으로 점으로 표시된 에스프레소 샷 5개. 회색 막대가 각 점과 선을 연결하며, 편차가 표시되어 있습니다: -2, +1, -1, +4, -2

평균과의 각 차이를 편차라고 합니다. 편차는 합하면 0이 되므로, 제곱한 다음 평균을 구합니다. 이것이 분산입니다.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

다음과 같이 출력됩니다:

[-2.  1. -1.  4. -2.]
5.2 2.28

그 제곱근인 표준 편차를 구하면 제곱초가 다시 초로 바뀝니다: 2.28. np.var(a)와 np.std(a)는 각각 한 번의 호출로 계산합니다.

표준 편차가 0인 특성은 절대 변하지 않으므로 모델에 아무런 정보도 제공하지 않습니다.

challenge icon

챌린지

쉬움

품질 관리는 기계가 주스 병을 얼마나 균일하게 채우는지 확인합니다. 시작 코드는 부피를 ml 단위로 여섯 개 입력받고, spread_by_hand(a)가 반환하는 값을 np.std와 나란히 출력합니다. 이 함수가 다음 값을 반환하도록 완성하세요.

  1. 분산: a의 평균에서 각 값의 편차를 제곱한 값들의 평균,
  2. 표준 편차: 분산의 제곱근.

부피가 1004, 996, 1011, 993, 1002, 998인 경우:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

직접 해보기

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# 배열 a의 분산과 표준편차를 반환합니다
def spread_by_hand(a):
    # 여기에 코드를 작성한 다음, 0, 0 대신 두 값을 반환하세요
    return 0, 0


# 아래 줄은 변경하지 마세요
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

머신러닝을 위한 통계의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러