חשיבות התכונות
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 30 מתוך 58.
על אילו מאפיינים העץ מסתמך? feature_importances_ נותן לכל מאפיין את החלק שלו במיונים שביצעו השאלות שלו, והחלקים מסתכמים ב־1:
כשהם ממוינים ל-Series, הם יוצרים תרשים מדורג. ax.barh מצייר את העמודות לרוחב, כך ששמות ארוכים נכנסים:
imp = pd.Series(tree.feature_importances_, index=iris.feature_names).sort_values()
ax.barh(imp.index, imp.values)0 פירושו שהעץ מעולם לא שאל על התכונה הזאת. ייתכן שהעלים עדיין חשובים: עלי הכותרת כבר סיפרו לעץ מה הם יעשו.
אתגר
בינוניבית ספר לגלישה רוצה לדעת מה גורם למתחילים לעמוד על הגלשן במהלך השבוע הראשון שלהם. התוכנית קוראת עומק; קוד הבסיס מאמן עץ בעומק הזה ומכין את התרשים.
- שמור את ערכי החשיבות בסדרה לפי שם המאפיין, מהקטן לגדול.
- הדפס את המאפיין החשוב ביותר (3 ספרות אחרי הנקודה העשרונית) ואת המאפיינים שלא נשאלו עליהם מעולם, כפי שמוצג למטה.
- צייר אותם כעמודות אופקיות והצג את התרשים.
עבור בית ספר לשחייה:
Top feature: pool_hours (0.612)
Never asked: ['goggles']לאחר מכן Coddy מתארת את התרשים שלך. התרשים שלהם נראה כך:
נסו בעצמכם
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
depth = int(input())
# שורה אחת לכל מתחיל: 1 ב-standing פירושו שהצליח לעמוד על הגלשן במהלך השבוע הראשון שלו
surf = pd.read_csv("surfschool.csv")
features = ["age", "fitness", "days_surfed", "skated_before", "lesson_hours", "wetsuit_fit"]
X_train, X_test, y_train, y_test = train_test_split(surf[features], surf["standing"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=depth, random_state=0)
tree.fit(X_train, y_train)
fig, ax = plt.subplots(layout="constrained") # משאיר מקום לשמות ארוכים
ax.set_title("What Gets Beginners Standing?")
ax.set_xlabel("Importance")
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין