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

أهمية الميزات

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

ما الميزات التي يعتمد عليها الشجر؟ تعطي feature_importances_ لكل ميزة حصتها من عمليات الفرز التي أجرتها أسئلته، ومجموع الحصص يساوي 1:

أشرطة أفقية لشجرة سوسن بعمق 3: عرض البتلة 0.58، طول البتلة 0.42، عرض السبلة 0.00، طول السبلة 0.00

عند ترتيبها في سلسلة، تُنشئ مخططًا مرتبًا. ترسم ax.barh الأشرطة أفقيًا، بحيث تتسع للأسماء الطويلة:

imp = pd.Series(tree.feature_importances_, index=iris.feature_names).sort_values()
ax.barh(imp.index, imp.values)

تعني القيمة 0 أن الشجرة لم تسأل قط عن هذه السمة. وقد تظل السبلات مهمة: فقد أخبرت البتلات الشجرة بالفعل بما ستفعله.

challenge icon

التحدي

متوسط

تريد مدرسة لتعليم ركوب الأمواج معرفة ما الذي يساعد المبتدئين على الوقوف على اللوح خلال أسبوعهم الأول. يقرأ البرنامج قيمة للعمق؛ ويُدرّب البرنامج التمهيدي شجرة بهذا العمق ويُعدّ المخطط.

  1. ضع درجات الأهمية في Series مُسمّاة حسب الميزة، مرتبة من الأصغر إلى الأكبر.
  2. اطبع الميزة الأعلى (3 منازل عشرية) والميزات التي لم يُسأل عنها قط، كما هو موضح أدناه.
  3. ارسمها على شكل أشرطة أفقية واعرض المخطط.

بالنسبة إلى مدرسة لتعليم السباحة:

Top feature: pool_hours (0.612)
Never asked: ['goggles']

بعد ذلك، يصف Coddy مخططك. يبدو مخططهم هكذا:

أشرطة أفقية بعنوان ما الذي يساعد السباحين على اجتياز التدريب؟، الأكبر في الأعلى: pool_hours نحو 0.61، can_float 0.21، age 0.10، lessons_per_week 0.08، goggles 0

جرّب بنفسك

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")

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

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

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

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