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

قراءة شجرة

جزء من قسم التعلّم الخاضع للإشراف في رحلة 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 عبر الإنترنت