עצים שואלים שאלות
חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 27 מתוך 58.
הפרק הזה מסתיים בעץ שמסביר הלוואה לחווה. עץ החלטה משחק עשרים שאלות: שאלה אחת של כן או לא על מאפיין בכל פעם, עד שמגיעים לתשובה:
באימון נבחרת כל שאלה כך שהתשובות שלה יפרידו בין המחלקות בצורה הנקייה ביותר האפשרית:
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train) # אורך ורוחב עלי הכותרת, cm
print(tree.predict([[4.5, 1.4]]))הדבר מדפיס [1], versicolor. max_depth=2 מאפשר שתי שאלות בכל מסלול. אין צורך בנרמול: כל שאלה קוראת מאפיין אחד.
אתגר
בינוניחנות להשכרת מצלמות שולחת הודעת תזכורת כשהציוד עלול לחזור באיחור. הקוד ההתחלתי מחלק את ההשכרות הקודמות שלה וקורא השכרה חדשה לטבלה בת שורה אחת new_rental.
- אמנו עץ החלטה עם 2 שאלות לכל היותר בכל מסלול (
random_state=0). - הדפיסו את דיוק הבדיקה שלו (3 ספרות אחרי הנקודה העשרונית) ואת התשובה שלו לגבי ההשכרה החדשה:
likely lateעבור 1,likely on timeעבור 0.
עבור חנות אחרת:
Test accuracy: 0.792
This rental: likely on timeנסו בעצמכם
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# השכרות קודמות: 1 ב-late פירושו שהציוד הוחזר באיחור
rentals = pd.read_csv("rentals.csv")
features = ["rental_weeks", "gear_value_usd", "customer_age", "late_before"]
X_train, X_test, y_train, y_test = train_test_split(rentals[features], rentals["late"], test_size=0.25, random_state=0)
# השכרה חדשה: מספר השבועות שהוזמנו, שווי הציוד, גיל הלקוח ומספר הפעמים שהחזיר ציוד באיחור עד כה
weeks = int(input())
value = int(input())
age = int(input())
late_before = int(input())
new_rental = pd.DataFrame([[weeks, value, age, late_before]], columns=features)
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה מונחית
תרגלו בעצמכם: קומפיילר Python אונליין