Menu
CoddyTech
flag Ar iconالعربيةdown icon

الأشجار تطرح أسئلة

جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 27 من 58.

ينتهي هذا الفصل بشجرة تشرح قرضًا زراعيًا. تؤدي شجرة القرار لعبة عشرين سؤالًا: سؤالًا واحدًا عن إحدى السمات تكون إجابته نعم أو لا في كل مرة، وصولًا إلى إجابة:

مخطط شجرة. يسأل المربع العلوي: هل عرض البتلة 0.8 cm أو أقل؟ تؤدي الإجابة بنعم إلى setosa. وتؤدي الإجابة بلا إلى مربع ثانٍ: هل طول البتلة 4.95 cm أو أقل؟ تؤدي الإجابة بنعم إلى versicolor، وبلا إلى virginica

يختار التدريب كل سؤال بحيث تقسّم إجاباته الفئات بأكبر قدر ممكن من الوضوح:

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 طرح سؤالين في كل مسار. لا حاجة إلى التحجيم: يقرأ كل سؤال ميزة واحدة.

challenge icon

التحدي

متوسط

يرسل متجر لتأجير الكاميرات رسالة تذكير عندما يُحتمل أن تعود المعدات متأخرة. يقسم البرنامج التمهيدي عمليات التأجير السابقة ويقرأ عملية تأجير جديدة في جدول من صف واحد new_rental.

  1. درّب شجرة قرار بحد أقصى سؤالين في كل مسار (random_state=0).
  2. اطبع دقتها على الاختبار (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)

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت