أهمية الميزات
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 30 من 58.
ما الميزات التي يعتمد عليها الشجر؟ تعطي feature_importances_ لكل ميزة حصتها من عمليات الفرز التي أجرتها أسئلته، ومجموع الحصص يساوي 1:
عند ترتيبها في سلسلة، تُنشئ مخططًا مرتبًا. ترسم ax.barh الأشرطة أفقيًا، بحيث تتسع للأسماء الطويلة:
imp = pd.Series(tree.feature_importances_, index=iris.feature_names).sort_values()
ax.barh(imp.index, imp.values)تعني القيمة 0 أن الشجرة لم تسأل قط عن هذه السمة. وقد تظل السبلات مهمة: فقد أخبرت البتلات الشجرة بالفعل بما ستفعله.
التحدي
متوسطتريد مدرسة لتعليم ركوب الأمواج معرفة ما الذي يساعد المبتدئين على الوقوف على اللوح خلال أسبوعهم الأول. يقرأ البرنامج قيمة للعمق؛ ويُدرّب البرنامج التمهيدي شجرة بهذا العمق ويُعدّ المخطط.
- ضع درجات الأهمية في Series مُسمّاة حسب الميزة، مرتبة من الأصغر إلى الأكبر.
- اطبع الميزة الأعلى (3 منازل عشرية) والميزات التي لم يُسأل عنها قط، كما هو موضح أدناه.
- ارسمها على شكل أشرطة أفقية واعرض المخطط.
بالنسبة إلى مدرسة لتعليم السباحة:
Top feature: pool_hours (0.612)
Never asked: ['goggles']بعد ذلك، يصف Coddy مخططك. يبدو مخططهم هكذا:
جرّب بنفسك
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
depth = int(input())
# صف واحد لكل مبتدئ: تعني القيمة 1 في standing أنه وقف على اللوح خلال أسبوعه الأول
surf = pd.read_csv("surfschool.csv")
features = ["age", "fitness", "days_surfed", "skated_before", "lesson_hours", "wetsuit_fit"]
X_train, X_test, y_train, y_test = train_test_split(surf[features], surf["standing"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=depth, random_state=0)
tree.fit(X_train, y_train)
fig, ax = plt.subplots(layout="constrained") # يترك مساحة للأسماء الطويلة
ax.set_title("What Gets Beginners Standing?")
ax.set_xlabel("Importance")
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت