هندسة السمات
Feature Engineering
تحويل البيانات الخام إلى سمات مفيدة: الترميز والتوحيد والتعويض والسمات المشتقة، دون تسرب بيانات.
لماذا هندسة السمات؟
جودة السمات كثيراً ما تحدد سقف أداء النموذج أكثر من اختيار الخوارزمية، خصوصاً في البيانات الجدولية.
التحويلات الأساسية
| المشكلة | التحويل | أداة 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 لتجنب تسرب البيانات.
أسئلة مراجعة
-
لماذا يجب استدعاء fit للمحوِّل على بيانات التدريب فقط؟
لأن حساب الإحصاءات (المتوسط، الانحراف، الفئات) من بيانات الاختبار يسرب معلومات منها إلى النموذج.
-
متى يناسب الترميز الترتيبي (Ordinal)؟
عندما يكون للفئات ترتيب طبيعي مثل منخفض/متوسط/مرتفع، أو مع النماذج الشجرية.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة