열차 지연
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 61번째.
통근 노선 두 곳인 Maple과 Birch는 하나의 역을 함께 사용합니다. 24일 동안 trains.csv에 각 노선의 출퇴근 시간대 열차가 얼마나 늦었는지 기록했습니다:
세 번의 신호 장애로 열차가 한 시간 이상 지연되었습니다. 실제로 있었던 일이지만, 평균을 왜곡할 만큼 큰 지연입니다.
관리자가 묻습니다. Maple이 정말 더 늦은 걸까요, 아니면 그 차이는 우연일까요? 극단값을 완화한 다음, 섞어서 판단해 봅시다.
챌린지
어려움프로그램은 펜스 계수 k를 읽습니다. 1.5는 상자 수염 그림의 규칙입니다.
- 모든 지연 시간을
Q1 - k * IQR와Q3 + k * IQR로 펜싱하고, 이상치의 개수를 센 다음,np.clip으로 모든 지연 시간을 상한 처리합니다. - 각 노선의 상한 처리된 지연 시간 평균과 차이(Maple에서 Birch를 뺀 값)를 출력합니다.
- 2000회 섞습니다. Maple의 상한 처리된 지연 시간에 Birch의 것을 합쳐 풀을 만든 뒤, 매 회차마다
rng.permutation을 한 번 실행하고, 처음 24개를 가짜 Maple로 사용합니다. - 부호는 무시하고 p값과 판정을 출력합니다. 0.05 미만이면
unlikely to be chance, 그렇지 않으면could be chance입니다.
일반 값은 소수점 이하 2자리, p값은 3자리로 반올림합니다. k = 2일 때:
Fences: 0.25 to 26.5 (3 outliers)
Maple mean: 15.27
Birch mean: 12.21
Difference: 3.06
p-value: 0.03
Verdict: unlikely to be chance더 엄격하거나 더 느슨한 k에서도 판정이 유지되나요?
직접 해보기
import numpy as np
import pandas as pd
k = float(input())
df = pd.read_csv("trains.csv")
delays = df["delay_min"]
# 아래 줄을 변경하지 마세요
rng = np.random.default_rng(5)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러