الأشجار تطرح أسئلة
جزء من قسم التعلّم الخاضع للإشراف في رحلة 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.
- درّب شجرة قرار بحد أقصى سؤالين في كل مسار (
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 عبر الإنترنت