Z-점수 규칙
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 26번째.
농장에서 달걀 300개의 무게를 잰 뒤, 두 개의 무게를 손으로 입력했습니다. 6.2 g과 94.6 g으로, 둘 다 오타였습니다. 이 값들의 z-점수(평균으로부터의 거리, 표준편차 단위)를 보면 오타임을 알 수 있습니다:
np.abs는 마이너스 부호를 제거하므로, 한 번의 비교로 양쪽을 모두 감지합니다:
rng = np.random.default_rng(3)
eggs = np.concatenate([rng.normal(60, 4, size=300), np.array([6.2, 94.6])])
z = (eggs - eggs.mean()) / eggs.std()
print(np.abs(np.array([-4, 2, -1])))
print(eggs[np.abs(z) > 3])다음과 같이 출력됩니다:
[4 2 1]
[ 6.2 94.6]종 모양 데이터에서는 값의 99.7%가 3 표준편차 이내에 있으므로, np.abs(z) > 3은 학습 전에 확인해야 할 드문 값을 표시합니다.
하지만 이상치는 측정에 사용되는 표준 편차를 키우므로, 표본이 작으면 이상치가 드러나지 않습니다. 그런 경우에는 IQR 규칙을 사용하세요.
챌린지
중급빵집의 저울로 빵 250개의 무게를 측정해 loaves에 넣었고, 3개는 손으로 추가 입력했습니다. 프로그램은 임계값을 읽습니다.
- 배열의
.mean()과.std()를 사용해 모든 빵의 z 점수를 계산하세요. - 위치 순서대로, z 점수가 0에서 임계값보다 더 멀리 떨어진 각 빵의 위치, 무게(소수점 1자리), z 점수(소수점 2자리)를 출력하세요.
- 목록에 표시한 빵의 개수를 출력하세요.
다른 날의 데이터와 임계값 3의 경우:
Loaf 200: 702.5 g, z = -5.38
Loaf 201: 889.3 g, z = 4.91
Loaves to re-weigh: 2직접 해보기
import numpy as np
# 아래 줄은 변경하지 마세요: 저울로 잰 빵 250개의 무게와 손으로 입력한 무게 3개
rng = np.random.default_rng(25)
loaves = np.concatenate([rng.normal(800, 15, size=250), np.array([731.4, 868.9, 912.3])])
cutoff = float(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러