Menu
CoddyTech

חיזוי מספרים

חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 11 מתוך 58.

המודלים בפרק הזה מנבאים מספרים. בסופו, תרשים של ההחטאות של מודל יחשוף מה הוא לא הבחין בו:

תרשים של החטאות מודל ביחס לטמפרטורה: הנקודות מתעקמות מ־-280 ועד +140 ובחזרה למטה, סביב קו מקווקו ב־0, שכותרתו: המודל לא הבחין בעקומה

התחילו עם קו שאתם מכירים. LinearRegression לומדת אותו מטבלה X, שורה אחת לכל דגימה ועמודה אחת לכל מאפיין:

from sklearn.linear_model import LinearRegression

area = np.array([60, 75, 90, 110, 130, 150])  # בתים, במ״ר
price = np.array([215, 248, 290, 335, 385, 428])  # אלפי דולרים
X = area.reshape(-1, 1)  # 6 שורות, עמודה 1
model = LinearRegression()
model.fit(X, price)
print(np.round(model.coef_, 2), np.round(model.intercept_, 2))
print(np.round(np.polyfit(area, price, 1), 2))

הדבר מדפיס את אותה השורה פעמיים:

[2.39] 71.59
[ 2.39 71.59]

שישה בתים כנקודות, מחיר לעומת שטח, כאשר קו LinearRegression הכתום והעבה וקו np.polyfit השחור והמקווקו מונחים בדיוק זה על גבי זה: מחיר = 2.39 * שטח + 71.59

coef_ מכיל שיפוע אחד לכל תכונה: כל מ"ר נוסף מוסיף 2.39 אלף דולר. intercept_ הוא נקודת ההתחלה של הקו, ב־0 מ"ר. לאחר מכן model.predict([[100]]) מתמחר 100 מ"ר בכ־310.85 אלף.

challenge icon

אתגר

בינוני

בית דפוס מעולם לא פרסם את המחירים שלו, אבל יש לך נתונים מ־10 עבודות קודמות: pages ו־price בדולרים. התוכנית קוראת את מספר העמודים של עבודה חדשה.

  1. התאם מודל LinearRegression למספר העמודים, כטבלה בעלת עמודה אחת.
  2. הדפס את המחיר לעמוד (3 ספרות אחרי הנקודה העשרונית) ואת דמי ההקמה, כלומר את החיתוך עם הציר (2 ספרות אחרי הנקודה העשרונית).
  3. הדפס את המחיר החזוי של העבודה החדשה (2 ספרות אחרי הנקודה העשרונית).

עבור בית דפוס אחר ו־120:

Per page: 0.095 dollars
Setup fee: 4.1 dollars
120 pages: 15.5 dollars

נסו בעצמכם

import numpy as np
from sklearn.linear_model import LinearRegression

# 10 עבודות הדפסה קודמות: מספר העמודים שהודפסו והמחיר ששולם, בדולרים
pages = np.array([40, 75, 120, 160, 210, 260, 300, 380, 450, 520])
price = np.array([7.38, 12.6, 17.65, 20.69, 26.63, 32.18, 37.76, 46.4, 55.17, 60.89])
new_pages = int(input())

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

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

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

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