העלאת המודל
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 54 מתוך 58.
הפינגווינים בקבוצת הבדיקה חיכו לאורך כל הפרויקט. התאם את צינור העיבוד שעבר כוונון לשורות האימון, ואז חשב את הציון שלו על הפינגווינים בקבוצת הבדיקה פעם אחת: המספר האמין.
עכשיו נראה איפה הוא טועה. המודל של מרפאה מסווג אנשים כבריאים, מצוננים או חולים בשפעת; השורות מציגות את התשובות הנכונות, והעמודות את הניחושים שלו:
פינגווין חדש הוא טבלה בת שורה אחת עם העמודות של נתוני האימון. predict נותנת לו שם, ו־predict_proba(new).max() מציין את מידת הביטחון: החלק היחסי של המחלקה המנצחת; ב־k-NN, השכנים שמסכימים.
אתגר
בינוניקו הסיום. model הוא צינור העיבוד המכוונן שלך; קוד הפתיחה קורא נתונים של פינגווין חדש לתוך new_penguin.
- אמנו את המודל על שורות האימון. הדפיסו את דיוק הבדיקה שלו (3 ספרות אחרי הנקודה העשרונית) ואת מספר הפינגווינים במערך הבדיקה שהוא זיהה נכון.
- שרטטו את מטריצת הבלבול של תחזיות הבדיקה על
axוהציגו אותה. - זהו את הפינגווין החדש ואת מידת הביטחון של המודל, באחוזים.
עבור מושבה בתחנה אחרת:
Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)והמטריצה שלה:
אחר כך Coddy ידווח על התוצאות שלך. הכוכבת מ-Meet the Penguins נמדדה כ-47.2, 18.0, 194 ו-3650, באי Dream, נקבה. הריצו את התוכנית שלכם איתה: מי היא?
נסו בעצמכם
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import ConfusionMatrixDisplay
# המושבה מתוך Meet the Penguins, המאפיינים שלה והתווית שלה
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
# מתוך Prepare the Data: שני המסלולים
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])
# מתוך Choose a Model and Tune the Winner: k-NN עם k = 7
model = make_pipeline(prep, KNeighborsClassifier(n_neighbors=7))
# פינגווין חדש מהשטח, כטבלה בת שורה אחת עם אותן עמודות
new_penguin = pd.DataFrame({
"bill_length_mm": [float(input())],
"bill_depth_mm": [float(input())],
"flipper_length_mm": [float(input())],
"body_mass_g": [float(input())],
"island": [input()],
"sex": [input()],
})
fig, ax = plt.subplots()
ax.set_title("Test Penguins")
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין