התאמה וחיזוי
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 3 מתוך 58.
כל מודל של scikit-learn פועל בשתי קריאות. fit לומדת את שורות האימון עם התוויות שלהן; predict מתייגת שורות שהמודל מעולם לא ראה:
המודל מהשיעור הראשון במסלול הזה הוא שכנים קרובים ביותר (k-nearest neighbors): הוא מסווג שורה לפי שורות האימון הקרובות אליה ביותר. חיות מחמד לפי משקל (ק״ג) ואורך האוזניים (ס״מ):
from sklearn.neighbors import KNeighborsClassifier
X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))הפעולה מדפיסה ['cat' 'dog']. שורות חדשות נכנסות כטבלה, שורה אחת לכל חיית מחמד.
בנייה, התאמה, חיזוי: כל מודל ביחידה הזאת פועל לפי שלושת השלבים האלה.
אתגר
קלהאפליקציה של מועדון לצפייה בציפורים מזהה ציפורים לפי מוטת הכנפיים והמשקל שלהן. קוד הפתיחה מפצל את הקובץ birds.csv של המועדון וקורא את הציפורים של הערב לטבלה spotted.
- צרו מודל של k השכנים הקרובים ביותר ואמנו אותו על ציפורי האימון.
- בצעו חיזוי לכל הציפורים שנצפו בקריאה אחת.
- הדפיסו שורה אחת לכל ציפור, כמו בדוגמה שלמטה.
עבור שלוש ציפורים בטיול אחר:
Bird 1: sparrow
Bird 2: blackbird
Bird 3: robinנסו בעצמכם
import pandas as pd
from sklearn.model_selection import train_test_split
# שורה אחת לכל ציפור שהמועדון זיהה: מוטת כנפיים בס"מ, משקל בגרמים
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# הסיור הערב: כמה ציפורים, ואז מוטת הכנפיים והמשקל של כל אחת
count = int(input())
spans = []
weights = []
for i in range(count):
spans.append(float(input()))
weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין