Menu
CoddyTech

תחזיות של כן או לא

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

הפרק הזה עונה על שאלות של כן או לא בעזרת הסתברויות. הוא מסתיים במסנן דואר זבל שתבנו, שמדרג הודעות דוא״ל כך:

שמונה הודעות דוא״ל כעמודות המציגות את הסיכוי שלהן להיות דואר זבל, מ־0.02 עבור Mom ועד 0.97 עבור WIN NOW. העמודות שמעל לקו המקווקו ב־0.5 אדומות: דואר זבל

האם הזמנה במסעדה תבוטל? LogisticRegression לומדת זאת מ־60 הזמנות קודמות: מספר הימים מראש שבהם הוזמנו, והאם בוטלו (1) או מומשו (0):

שישים הזמנות כנקודות ב־0 (מומשו) וב־1 (בוטלו), לפי מספר הימים מראש שבהם הוזמנו, ועקומת S כתומה שעולה מ־0.07 ל־0.93. היא מציגה 0.09 אחרי 3 ימים ו־0.72 אחרי 40 ימים

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, כפי שסיכויים אמורים להיות.

challenge icon

אתגר

בינוני

מועדון עפיפונים מזמין שלושה מועדי הטסה למחר. kites.csv מכיל נתונים על 90 הטסות קודמות: wind_kmh, ו־flew, שמקבל את הערך 1 אם העפיפון המריא. התוכנית קוראת את תחזית הרוח לכל מועד לתוך slots.

  1. אמנו LogisticRegression (max_iter=1000) על נתוני הרוח.
  2. הדפיסו את הסיכוי שהעפיפון ימריא בכל מועד, באחוזים שלמים.
  3. הדפיסו את מספר ההטסות הצפוי: סכום הסיכויים (ספרה אחת אחרי הנקודה העשרונית).

עבור מועדון אחר:

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})

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

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

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

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