IQR 규칙
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 25번째.
상자 그림은 멀리 떨어진 값을 점으로 표시합니다. 코드에서 이 값을 찾으려면 규칙을 두 개의 경계값으로 바꾸세요. 상자의 각 가장자리에서 IQR의 1.5배만큼 바깥에 놓입니다:
코드에서 마스크를 사용하면:
prices = np.array([35, 42, 38, 45, 40, 72, 37, 44, 39, 41, 36, 18])
q1 = np.percentile(prices, 25)
q3 = np.percentile(prices, 75)
iqr = q3 - q1
low = q1 - 1.5 * iqr
high = q3 + 1.5 * iqr
print(low, high)
print(prices[(prices < low) | (prices > high)])다음과 같이 출력됩니다:
28.125 51.125
[72 18]사분위수는 극단값을 무시하므로, 이상값이 경계선을 늘려 자신을 숨길 수 없습니다. 학습 전에 이러한 값을 표시하세요. 하나의 극단적인 값이 모델을 자신 쪽으로 끌어당길 수 있습니다.
챌린지
중급교사가 퀴즈 시간을 측정했고, 프로그램은 각 학생의 소요 시간(분)을 minutes에 읽어 들입니다. 시작 코드는 iqr_fences가 반환하는 경계값을 출력합니다.
iqr_fences(a)를 완성하여a의 하한 및 상한 IQR 경계값을 반환하도록 하세요.- 아래에
Unusual:과 경계값을 벗어나는 시간을 원래 순서대로 출력하세요.
9명의 학생이 각각 8, 11, 9, 10, 27, 12, 9, 10, 11분 동안 퀴즈를 푼 경우:
Fences: 6.0 to 14.0 minutes
Unusual: [27]직접 해보기
import numpy as np
# 배열의 IQR 하한 경계와 상한 경계를 반환합니다
def iqr_fences(a):
# 여기에 코드를 작성하세요
return 0.0, 0.0
n = int(input())
values = []
for i in range(n):
values.append(int(input()))
minutes = np.array(values)
# 아래 줄은 변경하지 마세요
low, high = iqr_fences(minutes)
print(f"Fences: {np.round(low, 2)} to {np.round(high, 2)} minutes")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러