Menu
CoddyTech

למה לבצע סקיילינג לתכונות

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

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

אדם בן 25 שמרוויח $52,000, לעומת אדם בן 61 שמרוויח $53,000:

שני עמודות המציגות את התרומה של כל מאפיין למרחק בין שני הלקוחות: גיל, פער של 36 שנים, תורם 1,296, חלקיק דק מכדי לראות; הכנסה, פער של $1,000, תורמת 1,000,000, עמודה ארוכה

עבור טבלה שלמה, axis=1 מסכם את ריבועי הערכים בכל שורה ו־.argmin() מוצא את השורה הקרובה ביותר:

a = np.array([25, 52000])  # גיל, הכנסה
X = np.array([[61, 53000],   # בן ה-61
              [26, 55000]])  # בן 26 שמרוויח $55,000
dists = np.sqrt(((X - a) ** 2).sum(axis=1))
print(np.round(dists, 2))
print(dists.argmin())

זה מדפיס:

[1000.65 3000.  ]
0

בן ה־61 הוא הקרוב ביותר: סכומי הכסף גדולים יותר, ולכן $1,000 עולה על 36 שנים. ללא שינוי קנה מידה, היחידות הגדולות ביותר הן שקובעות.

הפרק הזה נותן לכל תכונה הזדמנות הוגנת להשמיע את קולה.

challenge icon

אתגר

בינוני

חנות משווה מכונות כביסה לפי מחיר ($), צריכת אנרגיה (kWh בשנה) וצריכת מים (ליטרים לכביסה), ששמותיהם מופיעים ב-features. התוכנית קוראת את המיקומים של שתי מכונות, i ו-j. הדפיסו:

  1. Squared gaps: הפער בריבוע של כל מאפיין.
  2. Distance: מעוגל ל-2 ספרות אחרי הנקודה העשרונית.
  3. Dominant feature: שם המאפיין שהפער שלו בריבוע הוא הגדול ביותר.

עבור שתי מכונות אחרות:

Squared gaps: [2500 6400    1]
Distance: 94.35
Dominant feature: energy

נסו בעצמכם

import numpy as np

features = ["price", "energy", "water"]
# שורה אחת לכל מכונת כביסה: מחיר בדולרים, צריכת אנרגיה ב-kWh לשנה, צריכת מים בליטרים לכל כביסה
machines = np.array([[499, 160, 48],
                     [349, 210, 55],
                     [899, 120, 42],
                     [529, 250, 50],
                     [279, 230, 60],
                     [749, 140, 45]])
i = int(input())
j = int(input())

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

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

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

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