Menu
CoddyTech

כלל הטווח הבין־רבעוני (IQR)

חלק מהיחידה סטטיסטיקה ללמידת מכונה במסלול ה-Machine Learning של Coddy. שיעור 25 מתוך 64.

תרשים קופסה מציג ערכים רחוקים כנקודות. כדי למצוא אותם בקוד, הופכים את הכלל שלו לשני גבולות, במרחק של 1.5 ערכי IQR מעבר לכל אחד מקצות הקופסה:

12 מחירי כרטיסים להופעה כנקודות על קו. עשרה נמצאים בתוך קופסה צרה סביב 37 עד 43 אירו. גבולות מקווקווים נמצאים במרחק של 1.5 ערכי IQR מכל אחד מקצות הקופסה, ב־28.1 וב־51.1, והמחירים 18 ו־72 נמצאים מעבר להם ומסומנים כערכים חריגים באדום

בקוד, עם מסכות:

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]

הרבעונים מתעלמים מערכים קיצוניים, ולכן ערך חריג לא יכול להרחיב את הגדרות כדי להסתיר את עצמו. סמנו את הערכים האלה לפני האימון: ערך קיצוני אחד יכול למשוך את המודל לכיוונו.

challenge icon

אתגר

בינוני

מורה מדד את הזמן שלקח לתלמידים להשלים בחידון, והתוכנית קוראת את מספר הדקות של כל תלמיד אל תוך minutes. קוד הפתיחה מדפיס את גבולות ה-IQR שהפונקציה iqr_fences מחזירה.

  1. השלימו את iqr_fences(a) כך שתחזיר את הגבול התחתון ואת הגבול העליון של ה-IQR של a.
  2. בהמשך, הדפיסו 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")

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה סטטיסטיקה ללמידת מכונה

תרגלו בעצמכם: קומפיילר Python אונליין