Menu
CoddyTech

כמה מחלקות

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

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

משמאל: 45 פירות לפי קוטר ומשקל, ליים קטנים, לימונים באמצע, תפוזים גדולים, וכוכב שחור שמייצג פרי חדש בין הלימונים לתפוזים. מימין: ההסתברויות שלו כעמודות, לימון 0.61, ליים 0.00, תפוז 0.39

model = LogisticRegression(max_iter=1000)
model.fit(X, kind)  # X: קוטר, משקל; kind: לימון, ליים או תפוז
print(model.classes_)
print(np.round(model.predict_proba([[6.7, 144]]), 2))
print(model.predict([[6.7, 144]]))

הדבר מדפיס:

['lemon' 'lime' 'orange']
[[0.61 0.   0.39]]
['lemon']

כל שורה מכילה הסתברות אחת לכל מחלקה, לפי הסדר של classes_, והן מסתכמות ל־1. predict בוחר את הגדולה ביותר.

אז המודל מציין עד כמה הוא בטוח: 61% לימון הוא מקרה גבולי, שכדאי לבדוק שוב.

challenge icon

אתגר

בינוני

אפליקציית פודקאסטים מסווגת פרקים חדשים תחת קומדיה, חדשות או פשע אמיתי. קוד ההתחלה מתאים LogisticRegression ל-episodes.csv (אורך, דוברים, צחוקים לדקה) וקורא פרק חדש לתוך episode, טבלה בת שורה אחת.

השלימו את describe(episode):

  1. הדפיסו את הסיכוי של כל סוג תוכנית, לפי הסדר של model.classes_, באחוזים שלמים.
  2. החזירו את הסוג הסביר ביותר.

עבור פרק של אפליקציה אחרת:

comedy: 12%
news: 70%
true crime: 18%
Best guess: news

נסו בעצמכם

import pandas as pd
from sklearn.linear_model import LogisticRegression

episodes = pd.read_csv("episodes.csv")
features = ["length_min", "speakers", "laughs_per_min"]
model = LogisticRegression(max_iter=1000)
model.fit(episodes[features], episodes["show_type"])


# מדפיסה את ההסתברות של כל סוג תוכנית עבור פרק אחד (טבלה בת שורה אחת), ואז מחזירה את הסוג הסביר ביותר
def describe(episode):
    # כתבו כאן את הקוד שלכם
    return "unknown"


# אל תשנו את השורות הבאות: פרק חדש מתוך הקלט
length = float(input())
speakers = int(input())
laughs = float(input())
episode = pd.DataFrame({"length_min": [length], "speakers": [speakers], "laughs_per_min": [laughs]})
best = describe(episode)
print(f"Best guess: {best}")
quiz iconבחנו את עצמכם

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

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

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