0Pricing
Learn AI with Python · درس

أساليب اختيار السمات

أساليب التصفية (التباين والارتباط)، والغلاف (RFE)، والمضمَّنة (انتظام L1).

أساليب اختيار السمات درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

لماذا نختار السمات

يحتفظ اختيار السمات بالأعمدة الأكثر فائدة فقط. ويعني عدد السمات الأقل تدريبًا أسرع، وفرط تخصيص أقل، وتفسيرًا أسهل. كما أن إزالة الضوضاء تحسّن الدقة غالبًا.

العائلات الثلاث للطرق

تنقسم طرق الاختيار إلى ثلاث مجموعات:

  • الترشيح يرتّب السمات حسب إحصائية (سريع ولا يعتمد على نموذج)
  • التغليف يبحث عن مجموعات فرعية عبر تدريب النماذج (بطيء ودقيق)
  • الاختيار المضمّن يحدث أثناء ملاءمة النموذج

VarianceThreshold

أبسط أساليب الترشيح: يحذف VarianceThreshold السمات التي يقل تباينها عن حد معين. فالأعمدة شبه الثابتة لا تحمل أي معلومات.

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])

SelectKBest مع f_classif

يحتفظ SelectKBest بالسمات ذات أعلى K درجات. ومع f_classif يستخدم اختبار F في ANOVA لقياس مدى قوة ارتباط كل سمة بتسمية الفئة.

from sklearn.feature_selection import SelectKBest, f_classif

sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))

المعلومات المتبادلة

يقيس mutual_info_classif أي اعتماد، بما في ذلك الاعتماد غير الخطي، بين السمة والهدف. وعلى خلاف اختبار F، فإنه يلتقط العلاقات غير الخطية التي يفوّتُها ANOVA.

from sklearn.feature_selection import SelectKBest, mutual_info_classif

sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)

مقارنة f_classif وmutual_info

يتميز f_classif بالسرعة ويكتشف العلاقات الخطية، بينما يكون mutual_info_classif أبطأ لكنه يلتقط العلاقات غير الخطية. وإذا توقعت وجود علاقات معقدة، ففضّل المعلومات المتبادلة.

import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif

f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])

الإزالة التكرارية للسمات

إن RFE طريقة تغليف: تدرّب نموذجًا، وتزيل أضعف سمة، ثم تكرر العملية. وتستخدم إشارة الأهمية الخاصة بالنموذج لترتيب السمات.

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)

RFECV: اختيار العدد تلقائيًا

يضيف RFECV التحقق المتقاطع إلى RFE، وبذلك يعثر على عدد السمات الأمثل من خلال درجة التحقق، بدلًا من الاعتماد على تخمين ثابت.

from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier

rfecv = RFECV(
    estimator=RandomForestClassifier(),
    cv=5,
    scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)

SelectFromModel مع Lasso

في الاختيار المضمّن، تعمل خوارزمية Lasso (L1) على تقليص المعاملات غير المهمة إلى الصفر تمامًا. ثم يحتفظ SelectFromModel بالمعاملات غير الصفرية فقط.

from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso

sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])

SelectFromModel مع أهمية الأشجار

يعمل SelectFromModel أيضًا مع أي مقدّر يوفّر feature_importances_، مثل الغابات العشوائية. اضبط threshold على قيمة مثل "mean" أو "median".

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

sel = SelectFromModel(
    RandomForestClassifier(n_estimators=200),
    threshold="median",
)
sel.fit(X, y)

اختيار الطريقة المناسبة

ابدأ بمرشحات منخفضة التكلفة مثل VarianceThreshold وSelectKBest لإزالة السمات غير المفيدة الواضحة. واستخدم SelectFromModel المضمّن لتحقيق توازن جيد. واحتفظ بـ RFECV للحالات التي تكون فيها الدقة أهم ما يمكن، وتسمح فيها القدرة الحاسوبية بذلك.

اختبار سريع

اختبر معرفتك باختيار السمات.

خلاصة

خلاصة: يشمل اختيار السمات أساليب الترشيح (VarianceThreshold وSelectKBest مع f_classif أو mutual_info_classif)، وأساليب التغليف (RFECV)، والأساليب المضمّنة (SelectFromModel مع Lasso أو أهمية الأشجار). وتُعد المرشحات الأسرع، بينما يُعد RFECV الأكثر دقة. استخدم المعلومات المتبادلة للعلاقات غير الخطية.

الأسئلة الشائعة

هل درس «أساليب اختيار السمات» مجاني؟

نعم — نص درس «أساليب اختيار السمات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «أساليب اختيار السمات»؟

أساليب التصفية (التباين والارتباط)، والغلاف (RFE)، والمضمَّنة (انتظام L1). تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساليب اختيار السمات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساليب اختيار السمات
  2. إنشاء السمات التفاعلية ومتعددة الحدود
  3. ترميز الهدف ومعالجة الفئات المتقدمة
  4. هندسة الميزات المؤتمتة باستخدام Featuretools
← العودة إلى Learn AI with Python