תחזיות של כן או לא
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 16 מתוך 58.
הפרק הזה עונה על שאלות של כן או לא בעזרת הסתברויות. הוא מסתיים במסנן דואר זבל שתבנו, שמדרג הודעות דוא״ל כך:
האם הזמנה במסעדה תבוטל? LogisticRegression לומדת זאת מ־60 הזמנות קודמות: מספר הימים מראש שבהם הוזמנו, והאם בוטלו (1) או מומשו (0):
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000) # מספיק צעדים להשלמת האימון
model.fit(X, cancelled) # X: מספר הימים מראש, עמודה אחת
print(np.round(model.predict_proba([[3], [40]]), 2))הדבר מדפיס:
[[0.91 0.09]
[0.28 0.72]]השורה של כל הזמנה מכילה את ההסתברות למחלקה 0, ואז למחלקה 1. [:, 1] שומר את ההסתברויות למחלקה 1, כלומר לביטול.
הם עוקבים אחר צורת S: לעולם אינם נמוכים מ-0 או גבוהים מ-1, כפי שסיכויים אמורים להיות.
אתגר
בינונימועדון עפיפונים מזמין שלושה מועדי הטסה למחר. kites.csv מכיל נתונים על 90 הטסות קודמות: wind_kmh, ו־flew, שמקבל את הערך 1 אם העפיפון המריא. התוכנית קוראת את תחזית הרוח לכל מועד לתוך slots.
- אמנו
LogisticRegression(max_iter=1000) על נתוני הרוח. - הדפיסו את הסיכוי שהעפיפון ימריא בכל מועד, באחוזים שלמים.
- הדפיסו את מספר ההטסות הצפוי: סכום הסיכויים (ספרה אחת אחרי הנקודה העשרונית).
עבור מועדון אחר:
6 km/h: 9% chance the kite flies
18 km/h: 64% chance the kite flies
30 km/h: 97% chance the kite flies
Expected flights: 1.7 of 3נסו בעצמכם
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
# 90 שיגורים קודמים: מהירות הרוח ב-km/h, והערך flew (1 אם העפיפון התרומם לאוויר)
kites = pd.read_csv("kites.csv")
# שלושת מועדי השיגור של מחר, לפי תחזית הרוח
winds = []
for i in range(3):
winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין