قراءة شجرة
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 28 من 58.
أسئلة الشجرة واضحة، لذا يمكنك التحقق مما تعلّمته. اتبع زهرةً طولها 5.1 سم وعرضها 1.6 سم عبر شجرة السوسن:
تطبع 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، وهي إجابة منطقية للبتلات الطويلة والعريضة.
التحدي
متوسطتُسمّي شجرة متجر الأجبان نوع الجبن: طازجًا أو طريًا أو صلبًا، اعتمادًا على محتواه المائي وعدد أسابيع تعتيقه. يدرّبها البرنامج التمهيدي ويقرأ بيانات جبن جديد.
- اطبع أسئلة الشجرة مع أسماء السمات.
- شغّلها واقرأ الأسئلة، ثم أكمل
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])
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت