Menu
CoddyTech

הערכת מודל

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

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

שני עמודות של דיוק מתוך 50 הלוואות בדיקה: ניחוש שתמיד משלמים בזמן מקבל 0.78, מודל k-NN מקבל 0.88

78% מההשאלות של הספרייה הזו הוחזרו בזמן, ולכן מענה בזמן בכל פעם מקבל ציון 0.78. זהו קו הבסיס.

from sklearn.metrics import accuracy_score

pred = model.predict(X_test)
print(accuracy_score(y_test, pred))
print(model.score(X_test, y_test))
common = y_train.value_counts().index[0]
print((y_test == common).mean())

הדבר מדפיס 0.88, 0.88, 0.78. score מנבא וסופר בקריאה אחת; קו הבסיס תמיד עונה בתווית הנפוצה ביותר בנתוני האימון.

מודל מצדיק את מקומו רק אם הוא מנצח את קו הבסיס.

challenge icon

אתגר

קל

החיישנים של כוורנית עוקבים אחר 160 כוורות ב־hives.csv; swarm מציין אם כל כוורת נחלה. האם חיישן אחד יכול להזהיר אותה? קוד הפתיחה קורא את שם החיישן ומתאים מודל על סמך החיישן הזה בלבד.

  1. הדפיסו את דיוק המודל על נתוני הבדיקה, מעוגל ל־3 ספרות אחרי הנקודה העשרונית.
  2. הדפיסו את קו הבסיס, וציינו את התווית שהוא תמיד מחזיר.
  3. הדפיסו האם המודל גובר עליו.

עבור מכוורת אחרת ו־weight_change_kg:

Model on weight_change_kg: 0.775
Always "no": 0.7
Beats the baseline: yes

נסו בעצמכם

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# שורה אחת לכל כוורת: החיישנים שלה והאם התרחשה בה התנחלות
hives = pd.read_csv("hives.csv")
sensor = input()
X = hives[[sensor]]
y = hives["swarm"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
model = KNeighborsClassifier()
model.fit(X_train, y_train)

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

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

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

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