כלל ציון Z
חלק מהיחידה סטטיסטיקה ללמידת מכונה במסלול ה-Machine Learning של Coddy. שיעור 26 מתוך 64.
חווה שקלה 300 ביצים, ואז הקלידה שתיים ידנית: 6.2 g ו־94.6 g, שתיהן שגיאות הקלדה. ציוני ה־z שלהן (המרחק מהממוצע, ביחידות של סטיית תקן) מסגירים אותן:
np.abs מסירה את סימני המינוס, ולכן השוואה אחת תופסת את שני הצדדים:
rng = np.random.default_rng(3)
eggs = np.concatenate([rng.normal(60, 4, size=300), np.array([6.2, 94.6])])
z = (eggs - eggs.mean()) / eggs.std()
print(np.abs(np.array([-4, 2, -1])))
print(eggs[np.abs(z) > 3])פעולה זו מדפיסה:
[4 2 1]
[ 6.2 94.6]בנתונים בעלי התפלגות בצורת פעמון, 99.7% מהערכים נמצאים בטווח של 3 סטיות תקן, ולכן np.abs(z) > 3 מסמן את הערכים הנדירים שיש לבדוק לפני האימון.
אבל ערך חריג מגדיל את סטיית התקן שמודדים בעזרתה, ולכן הוא מוסתר במדגמים קטנים: השתמשו שם בכלל ה-IQR.
אתגר
בינוניהמשקל של מאפייה שקל 250 כיכרות והכניס אותן ל־loaves, ועוד 3 הוקלדו ידנית. התוכנית קוראת ערך סף.
- חשבו את ציון ה־z של כל כיכר באמצעות
.mean()ו־.std()של המערך. - לפי סדר המיקומים, הדפיסו כל כיכר שציון ה־z שלה רחוק מ־0 ביותר מערך הסף: את המיקום, המשקל (ספרה אחת אחרי הנקודה) וציון ה־z (שתי ספרות אחרי הנקודה).
- הדפיסו כמה כיכרות ציינתם.
עבור יום אחר וערך הסף 3:
Loaf 200: 702.5 g, z = -5.38
Loaf 201: 889.3 g, z = 4.91
Loaves to re-weigh: 2נסו בעצמכם
import numpy as np
# אל תשנו את השורות הבאות: 250 כיכרות לחם נשקלו במאזניים, ואז הוזנו ידנית 3 משקלים
rng = np.random.default_rng(25)
loaves = np.concatenate([rng.normal(800, 15, size=250), np.array([731.4, 868.9, 912.3])])
cutoff = float(input())
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה סטטיסטיקה ללמידת מכונה
1מרכז ופיזור
ממוצע וחציוןאחוזונים ורבעוניםשונות וסטיית תקןמדגם או אוכלוסייה?הערך השכיח ביותרסיכום: זמני משלוח4מדגמים ואוכלוסיות
אוכלוסייה ומדגםממוצעי מדגמים משתניםהתפלגות הדגימהמדגמים גדולים יותר, פחות רעשסיכום: סקר בעיירה5ערכים חריגים
תרשימי קופסהכלל הטווח הבין־רבעוני (IQR)כלל ציון Zטיפול בערכים חריגיםסיכום: תקלות בחיישניםתרגלו בעצמכם: קומפיילר Python אונליין