Menu
CoddyTech

חשיבות התכונות

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

על אילו מאפיינים העץ מסתמך? feature_importances_ נותן לכל מאפיין את החלק שלו במיונים שביצעו השאלות שלו, והחלקים מסתכמים ב־1:

עמודות אופקיות עבור עץ איריס בעומק 3: רוחב עלה כותרת 0.58, אורך עלה כותרת 0.42, רוחב עלה גביע 0.00, אורך עלה גביע 0.00

כשהם ממוינים ל-Series, הם יוצרים תרשים מדורג. ax.barh מצייר את העמודות לרוחב, כך ששמות ארוכים נכנסים:

imp = pd.Series(tree.feature_importances_, index=iris.feature_names).sort_values()
ax.barh(imp.index, imp.values)

0 פירושו שהעץ מעולם לא שאל על התכונה הזאת. ייתכן שהעלים עדיין חשובים: עלי הכותרת כבר סיפרו לעץ מה הם יעשו.

challenge icon

אתגר

בינוני

בית ספר לגלישה רוצה לדעת מה גורם למתחילים לעמוד על הגלשן במהלך השבוע הראשון שלהם. התוכנית קוראת עומק; קוד הבסיס מאמן עץ בעומק הזה ומכין את התרשים.

  1. שמור את ערכי החשיבות בסדרה לפי שם המאפיין, מהקטן לגדול.
  2. הדפס את המאפיין החשוב ביותר (3 ספרות אחרי הנקודה העשרונית) ואת המאפיינים שלא נשאלו עליהם מעולם, כפי שמוצג למטה.
  3. צייר אותם כעמודות אופקיות והצג את התרשים.

עבור בית ספר לשחייה:

Top feature: pool_hours (0.612)
Never asked: ['goggles']

לאחר מכן Coddy מתארת את התרשים שלך. התרשים שלהם נראה כך:

עמודות אופקיות שכותרתן מה עוזר לשחיינים להצליח?, כשהגדולה ביותר למעלה: pool_hours בערך 0.61, can_float 0.21, age 0.10, lessons_per_week 0.08, goggles 0

נסו בעצמכם

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")

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

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

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

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