הערכת מודל
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 4 מתוך 58.
האם מודל הוא טוב? הדיוק שלו, שיעור שורות הבדיקה שהוא מנבא נכון, אומר. השווה אותו לניחוש עצל:
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 מנבא וסופר בקריאה אחת; קו הבסיס תמיד עונה בתווית הנפוצה ביותר בנתוני האימון.
מודל מצדיק את מקומו רק אם הוא מנצח את קו הבסיס.
אתגר
קלהחיישנים של כוורנית עוקבים אחר 160 כוורות ב־hives.csv; swarm מציין אם כל כוורת נחלה. האם חיישן אחד יכול להזהיר אותה? קוד הפתיחה קורא את שם החיישן ומתאים מודל על סמך החיישן הזה בלבד.
- הדפיסו את דיוק המודל על נתוני הבדיקה, מעוגל ל־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)
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין