הכנת הנתונים
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 51 מתוך 58.
מודל קורא רק שורות מלאות של מספרים. בנתוני הפינגווינים יש ערכים חסרים ושתי עמודות טקסט, ולכן כל עמודה עוברת במסלול משלה:
פערים בטקסט מקבלים את המילה "unknown": פינגווין שמינו לא תועד מקבל עמודה משלו במקום ניחוש.
text_steps = make_pipeline(
SimpleImputer(strategy="constant", fill_value="unknown"),
OneHotEncoder())התאם את הענפים רק על שורות האימון. חציון שנחשף לפינגווינים שבמבחן יגרום לדליפת מידע מהם אל נתוני האימון.
אתגר
בינוניהפינגווינים צריכים את המסלולים שבתמונה. קוד הפתיחה מפצל אותם וקורא מספר שורה.
- בנה את
prep,ColumnTransformerששולח אתnumbersבמסלול המספרים ואתtextבמסלול הטקסט. - בצע התאמה על שורות האימון והמר אותן בקריאה אחת.
- הדפס את הגודל ואת החוסרים לפני העיבוד, את הגודל אחריו, ואז את השורה לאחר העיבוד, עם 2 ספרות אחרי הנקודה.
עבור מושבה אחרת ושורה 3:
Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12 0.47 -0.83 -0.6 0. 1. 0. 0. 1. 0. ]שורה 14 היא של פינגווין שאיש לא הצליח למדוד. למה היא תהפוך?
נסו בעצמכם
import numpy as np
import pandas as pd
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
# המושבה מתוך 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"]
# קודם מחלקים: הפינגווינים של קבוצת הבדיקה נשארים בצד עד Ship the Model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(input())
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין