تعلم الآلة متقدم · Advanced 15 دقيقة

هندسة السمات

Feature Engineering

تحويل البيانات الخام إلى سمات مفيدة: الترميز والتوحيد والتعويض والسمات المشتقة، دون تسرب بيانات.

تقدّمك في المسار0%

لماذا هندسة السمات؟

جودة السمات كثيراً ما تحدد سقف أداء النموذج أكثر من اختيار الخوارزمية، خصوصاً في البيانات الجدولية.

التحويلات الأساسية

المشكلةالتحويلأداة scikit-learn
قيم مفقودةتعويض بالوسيط أو القيمة الأكثر تكراراًSimpleImputer
متغير فئويترميز أحادي ساخنOneHotEncoder
مقاييس مختلفةتوحيد قياسيStandardScaler
توزيع ملتوٍتحويل لوغاريتميFunctionTransformer(np.log1p)
علاقات غير خطيةحدود متعددةPolynomialFeatures

مثال متكامل دون تسرب

import numpy as np
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression

num_cols = ["age", "income"]
cat_cols = ["city", "education"]

pre = ColumnTransformer([
    ("num", Pipeline([("imp", SimpleImputer(strategy="median")),
                      ("sc", StandardScaler())]), num_cols),
    ("cat", Pipeline([("imp", SimpleImputer(strategy="most_frequent")),
                      ("oh", OneHotEncoder(handle_unknown="ignore"))]), cat_cols),
])
model = Pipeline([("pre", pre), ("clf", LogisticRegression(max_iter=1000))])
# model.fit(X_train, y_train); model.score(X_test, y_test)

عند استخدام model داخل cross_val_score تُدرَّب كل التحويلات من جديد داخل كل طية، وهذا ما يمنع التسرب.

سمات مشتقة

  • من التاريخ: اليوم من الأسبوع، الشهر، هل هو عطلة.
  • نسب: الدخل مقسوماً على عدد أفراد الأسرة.
  • تجميعات: متوسط مشتريات العميل في آخر 30 يوماً (محسوبة من بيانات سابقة لزمن التنبؤ فقط).

أشكال خفية للتسرب

  • سمة تُحسب بعد وقوع النتيجة (مثل «تاريخ الخروج من المستشفى» عند التنبؤ بالدخول).
  • تكرار المثال نفسه في التدريب والاختبار.
  • اختيار السمات على كامل البيانات قبل التحقق المتقاطع.

مصطلحات الدرس

الترميز الأحادي الساخن One-Hot Encoding
تمثيل متغير فئوي بأعمدة ثنائية، عمود لكل فئة.
التوحيد القياسي Standardization
تحويل السمة لتصبح بمتوسط صفر وانحراف معياري واحد.
تسرب البيانات Data Leakage
وصول معلومات من بيانات الاختبار أو من المستقبل إلى عملية التدريب، فيبدو الأداء أفضل من حقيقته.

الملخص

هندسة السمات تحويل البيانات الخام إلى مدخلات تساعد النموذج على التعلم، وتشمل تعويض القيم المفقودة، وترميز المتغيرات الفئوية (One-Hot أو Ordinal)، وتوحيد المقياس، واشتقاق سمات جديدة، واختيار السمات. يجب أن تُتعلم كل التحويلات من بيانات التدريب فقط، ويُفضّل تنفيذها داخل Pipeline وColumnTransformer لتجنب تسرب البيانات.

أسئلة مراجعة

  1. لماذا يجب استدعاء fit للمحوِّل على بيانات التدريب فقط؟

    لأن حساب الإحصاءات (المتوسط، الانحراف، الفئات) من بيانات الاختبار يسرب معلومات منها إلى النموذج.

  2. متى يناسب الترميز الترتيبي (Ordinal)؟

    عندما يكون للفئات ترتيب طبيعي مثل منخفض/متوسط/مرتفع، أو مع النماذج الشجرية.

المصادر والمراجع

  1. scikit-learn — Preprocessing data
  2. scikit-learn — Pipelines and composite estimators
  3. scikit-learn — Common pitfalls and recommended practices

إكمال الدرس