우연일 수도 있을까?
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 43번째.
산세리프 글꼴을 사용한 독자 5명이 세리프 글꼴을 사용한 독자 5명보다 6.6초 빨랐습니다. 글꼴이 아무런 차이도 만들지 않았다면, 어떤 시간이든 두 그룹 중 어느 쪽에나 속할 수 있습니다. 섞어서 이를 재현해 보세요:
rng.permutation(a)는 섞인 복사본을 반환합니다. 이 작업을 1000번 반복하고 가짜 차이를 모두 저장하세요.
serif = np.array([52, 47, 58, 50, 55])
sans = np.array([45, 49, 41, 50, 44])
pooled = np.concatenate([serif, sans])
rng = np.random.default_rng(4)
diffs = []
for i in range(1000):
shuffled = rng.permutation(pooled)
diffs.append(shuffled[5:].mean() - shuffled[:5].mean())우연한 간격은 0 주변에 쌓이고, 실제 간격은 가장자리 근처에 있습니다. 이것은 순열 검정입니다.
한 모델이 다른 모델보다 성능이 좋다고 믿기 전에, 데이터를 섞었을 때 그 정도로 큰 차이가 드물게 나타나는지 확인하세요.
챌린지
중급개들은 두 가지 방법으로 앉는 법을 배웠습니다. clicker와 treats에는 각 개의 훈련 횟수가 들어 있습니다. 시작 코드에서 rng와 shuffles를 만듭니다.
- 실제 차이를 계산합니다. treats 평균에서 clicker 평균을 뺍니다.
clicker다음에treats를 합친 뒤,shuffles번 섞고len(clicker)에서 나눕니다. 각 가짜 차이는 같은 방향으로 계산합니다. 그 외에는 난수를 뽑지 않습니다.- 실제 차이, 첫 번째 가짜 차이, 최솟값과 최댓값을 소수점 이하 2자리까지 출력합니다.
다른 개들의 경우:
Real difference: 3.0
First shuffle: -1.0
Smallest shuffled: -3.33
Largest shuffled: 3.67직접 해보기
import numpy as np
# 각 개가 "sit"을 배우는 데 필요했던 훈련 횟수
clicker = np.array([9, 12, 8, 11, 10, 7, 13])
treats = np.array([14, 11, 15, 12, 16, 13])
# 아래 줄은 변경하지 마세요
rng = np.random.default_rng(12)
shuffles = 1000
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러