עמודות מעורבות
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 46 מתוך 58.
רוב הטבלאות משלבות מילים ומספרים, ולכל סוג דרוש שלב משלו. ColumnTransformer שולח כל עמודה לשלב שלה ומחבר את התוצאות:
עבור חנות תקליטים, בקוד:
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
prep = ColumnTransformer([
("words", OneHotEncoder(), ["genre", "condition"]),
("numbers", StandardScaler(), ["price", "year"]),
])
pipe = make_pipeline(prep, LogisticRegression(max_iter=1000))כל רשומה כוללת שם, שלב ואת העמודות שלה. בניגוד ל־get_dummies, המקודד זוכר את הקטגוריות של נתוני האימון, כך שרשומה חדשה מקבלת את אותן 7 עמודות.
אתגר
בינונימועדון שחמט רוצה לדעת את סיכויי הניצחון של כל שחקן לפני משחק. קוד הפתיחה מחלק את chess.csv וקורא את נתוני המשחק של הערב.
- קודד את
openingואתcolor, בצע קנה מידה ל-rating_gapול-minutes, והדפס כמה עמודות מתקבלות משורות האימון. - שרשר את זה לרגרסיה לוגיסטית, בצע התאמה, והדפס את דיוק הבדיקה.
- הדפס את סיכויי הניצחון של הערב.
מועדון אחר, שלוש פתיחות, ו-sicilian, black, 50, 15:
Columns after preparing: 7
Test accuracy: 0.805
Win chance: 0.66נסו בעצמכם
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# משחקי מועדון שחמט: הפתיחה, צבע הכלים של השחקן, הדירוג שלו פחות
# הדירוג של היריב, מספר הדקות שנותרו בשעון, והאם השחקן ניצח (1) או לא (0)
games = pd.read_csv("chess.csv")
X = games[["opening", "color", "rating_gap", "minutes"]]
y = games["won"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# המשחק של הערב, שורה אחת עם אותן עמודות
game = pd.DataFrame({"opening": [input()], "color": [input()],
"rating_gap": [int(input())], "minutes": [int(input())]})
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
10צינורות עיבוד
צינורות עיבודעמודות מעורבותהשלמת ערכים חסרים בצינור עיבודכוונון צינור עיבודסיכום: ניקוי וחיזויתרגלו בעצמכם: קומפיילר Python אונליין