Menu
CoddyTech

우연일 수도 있을까?

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

산세리프 글꼴을 사용한 독자 5명이 세리프 글꼴을 사용한 독자 5명보다 6.6초 빨랐습니다. 글꼴이 아무런 차이도 만들지 않았다면, 어떤 시간이든 두 그룹 중 어느 쪽에나 속할 수 있습니다. 섞어서 이를 재현해 보세요:

읽는 데 걸린 시간 10개를 셀로 나타냈으며, 세리프 글꼴을 사용한 5개는 파란색, 산세리프 글꼴을 사용한 5개는 주황색입니다. rng.permutation(pooled)이라고 표시된 화살표는 순서가 섞인 동일한 10개 값으로 이어지며, 이를 평균이 48.4인 가짜 세리프 그룹과 평균이 49.8인 가짜 산세리프 그룹으로 나눕니다. 우연히 생긴 차이는 +1.4초입니다.

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())

1000개의 섞인 차이를 나타낸 히스토그램. -7.8초에서 7.8초 범위의 값이 0 근처에 몰려 있고, 실제 차이인 -6.6을 나타내는 빨간 선은 왼쪽 가장자리 근처에 있습니다

우연한 간격은 0 주변에 쌓이고, 실제 간격은 가장자리 근처에 있습니다. 이것은 순열 검정입니다.

한 모델이 다른 모델보다 성능이 좋다고 믿기 전에, 데이터를 섞었을 때 그 정도로 큰 차이가 드물게 나타나는지 확인하세요.

challenge icon

챌린지

중급

개들은 두 가지 방법으로 앉는 법을 배웠습니다. clicker와 treats에는 각 개의 훈련 횟수가 들어 있습니다. 시작 코드에서 rng와 shuffles를 만듭니다.

  1. 실제 차이를 계산합니다. treats 평균에서 clicker 평균을 뺍니다.
  2. clicker 다음에 treats를 합친 뒤, shuffles번 섞고 len(clicker)에서 나눕니다. 각 가짜 차이는 같은 방향으로 계산합니다. 그 외에는 난수를 뽑지 않습니다.
  3. 실제 차이, 첫 번째 가짜 차이, 최솟값과 최댓값을 소수점 이하 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

# 아래에 코드를 작성하세요
quiz icon실력 점검

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

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

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