Menu
CoddyTech

הכנת הנתונים

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

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

תרשים של פינגווין אחד מנתוני האימון. ארבע המדידות שלו עוברות במסלול כחול, מושלמות באמצעות החציון ואז עוברות קנה מידה, והתוצאות הן ‎-0.79, 0.00, ‎-0.05 ו־‎-0.90. האי שלו, Biscoe, והמין החסר עוברים במסלול כתום, מושלמים באמצעות הערך ״לא ידוע״ ואז עוברים קידוד one-hot, והתוצאות הן שש עמודות עם הערכים 0 או 1

פערים בטקסט מקבלים את המילה "unknown": פינגווין שמינו לא תועד מקבל עמודה משלו במקום ניחוש.

text_steps = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="unknown"),
    OneHotEncoder())

התאם את הענפים רק על שורות האימון. חציון שנחשף לפינגווינים שבמבחן יגרום לדליפת מידע מהם אל נתוני האימון.

challenge icon

אתגר

בינוני

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

  1. בנה את prep, ColumnTransformer ששולח את numbers במסלול המספרים ואת text במסלול הטקסט.
  2. בצע התאמה על שורות האימון והמר אותן בקריאה אחת.
  3. הדפס את הגודל ואת החוסרים לפני העיבוד, את הגודל אחריו, ואז את השורה לאחר העיבוד, עם 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())

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

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

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

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