קריאת עץ
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 28 מתוך 58.
השאלות של עץ קריאות, כך שאפשר לבדוק מה הוא למד. עקבו אחר פרח שאורכו 5.1 ס"מ ורוחבו 1.6 ס"מ במורד עץ האירוס:
export_text מדפיסה את אותן השאלות כטקסט, עם הזחה אחת לכל רמה:
from sklearn.tree import export_text
print(export_text(tree, feature_names=["petal_length", "petal_width"]))זה מדפיס:
|--- petal_width <= 0.80
| |--- class: 0
|--- petal_width > 0.80
| |--- petal_length <= 4.95
| | |--- class: 1
| |--- petal_length > 4.95
| | |--- class: 2כל שורה עונה רק על השאלות במסלול שלה. מחלקה 2 היא virginica, תשובה הגיונית לעלי כותרת ארוכים ורחבים.
אתגר
בינוניעץ ההחלטה של חנות גבינות קובע אם גבינה היא טרייה, רכה או קשה, על סמך תכולת המים שלה ומספר השבועות שבהם יושנה. קוד הפתיחה מאמן אותו ומסווג גבינה חדשה.
- הדפיסו את השאלות של עץ ההחלטה עם שמות התכונות.
- הריצו אותו, קראו את השאלות והשלימו את
by_handכך שישאל את אותן השאלות באמצעות if/else ויחזיר את אותה התשובה.
אחרי הפלט, עבור גבינה שעץ ההחלטה מסווג כרכה:
By hand: soft
The tree: softנסו בעצמכם
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# שורה אחת לכל גבינה: תכולת מים (%), מספר שבועות היישון והסוג שלה
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)
# גבינה חדשה שצריך לתת לה שם
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)
# כתבו את הקוד שלכם למטה: הדפיסו את העץ, ואז החזירו תשובה ב-by_hand באותו אופן שהוא עושה זאת
def by_hand(moisture, aged):
return "fresh"
# אל תשנו את השורות שלמטה
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין