Menu
CoddyTech

קריאת עץ

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

השאלות של עץ קריאות, כך שאפשר לבדוק מה הוא למד. עקבו אחר פרח שאורכו 5.1 ס"מ ורוחבו 1.6 ס"מ במורד עץ האירוס:

עץ האירוס כקופסאות עם נתיב אחד מואר בכתום: רוחב עלה הכותרת 0.80 או פחות? לא, 1.6. אורך עלה הכותרת 4.95 או פחות? לא, 5.1. הנתיב מסתיים במחלקה 2

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, תשובה הגיונית לעלי כותרת ארוכים ורחבים.

challenge icon

אתגר

בינוני

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

  1. הדפיסו את השאלות של עץ ההחלטה עם שמות התכונות.
  2. הריצו אותו, קראו את השאלות והשלימו את 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])
quiz iconבחנו את עצמכם

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

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

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