StandardScaler
חלק מהיחידה סטטיסטיקה ללמידת מכונה במסלול ה-Machine Learning של Coddy. שיעור 50 מתוך 64.
מודל חייב להתאים כל דגימה חדשה בדיוק כפי שהתאים את נתוני האימון שלו. StandardScaler של scikit-learn מתקנן וזוכר כיצד:
בקוד, עבור כל עבודה מצוינים מספר החלונות שנוקו והדקות שנדרשו:
from sklearn.preprocessing import StandardScaler
X_train = np.array([[2, 8], [10, 25], [6, 20], [14, 35]])
scaler = StandardScaler()
scaler.fit(X_train)
X_new = np.array([[8, 30]]) # דגימה אחת: טבלה עם שורה אחת
print(np.round(scaler.transform(X_new), 2))זה מדפיס:
[[0. 0.82]]fit לומדת את הממוצע ואת סטיית התקן של כל עמודה (מחלקת ב־n, כמו np.std), ושומרת אותם ב־scaler.mean_ וב־scaler.scale_. transform מחילה אותם.
לעולם אל תבצע התאמה לנתונים חדשים: הממוצע שלהם יהיה הממוצע של עצמם והתוצאה תהיה [[0. 0.]]. על נתוני האימון, fit_transform מבצע את שתי הפעולות בקריאה אחת.
אתגר
בינונימסווג למד מהאבוקדו שב־X_train: משקל, מוצקות וימים מאז הקטיף. התוכנית קוראת אבוקדו חדש לטבלה בת שורה אחת new_avocado, אבל פעולת ההתאמה של קוד הפתיחה להיקף מדפיסה [[0. 0. 0.]] עבור כל אבוקדו.
- תקנו זאת: התאימו את ההיקף של האבוקדו החדש באמצעות הממוצעים וסטיות התקן של נתוני האימון.
- ספרו את המדידות שלו שנמצאות במרחק של יותר מ־2 סטיות תקן מהממוצע של נתוני האימון, לכל כיוון, והדפיסו כפי שמוצג למטה.
עבור אצווה אחרת:
New avocado: [[2.98 0. 0.09]]
1 of 3 measurements are more than 2 std from the training avocadosנסו בעצמכם
import numpy as np
from sklearn.preprocessing import StandardScaler
# אבוקדו לאימון, שורה אחת לכל אבוקדו: משקל בגרמים, מידת קשיות מ־1 עד 10, ימים מאז הקטיף
X_train = np.array([[210, 8, 2],
[185, 5, 6],
[240, 7, 3],
[170, 3, 9],
[225, 6, 5],
[195, 4, 7]])
# אבוקדו חדש על המסוע
weight = float(input())
firmness = float(input())
days = float(input())
new_avocado = np.array([[weight, firmness, days]])
# הקוד הזה מדפיס [[0. 0. 0.]] עבור כל אבוקדו: תקנו אותו
scaler = StandardScaler()
scaled = scaler.fit_transform(new_avocado)
print("New avocado:", np.round(scaled, 2))
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה סטטיסטיקה ללמידת מכונה
1מרכז ופיזור
ממוצע וחציוןאחוזונים ורבעוניםשונות וסטיית תקןמדגם או אוכלוסייה?הערך השכיח ביותרסיכום: זמני משלוח4מדגמים ואוכלוסיות
אוכלוסייה ומדגםממוצעי מדגמים משתניםהתפלגות הדגימהמדגמים גדולים יותר, פחות רעשסיכום: סקר בעיירה5ערכים חריגים
תרשימי קופסהכלל הטווח הבין־רבעוני (IQR)כלל ציון Zטיפול בערכים חריגיםסיכום: תקלות בחיישנים3הסתברות באמצעות סימולציה
הסתברות כתדירותחוק המספרים הגדוליםסכומי הטלות קוביותערך צפויהסתברות מותניתסיכום: סיכויי דוכן הקוביות9סקיילינג של תכונות
למה לבצע סקיילינג לתכונותסקיילינג לפי מינימום-מקסימוםתקנוןStandardScalerסיכום: שותפים בטיפוסתרגלו בעצמכם: קומפיילר Python אונליין