هندسة الميزات المؤتمتة باستخدام Featuretools
EntitySet وDFS (التوليف العميق للميزات) وبدائيات الميزات وتجميعات التكديس
هندسة الميزات المؤتمتة باستخدام Featuretools درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
أتمتة إنشاء السمات
هندسة السمات يدويًا بطيئة، ومن السهل أن تفوّت بعض التركيبات. تنشئ Featuretools تلقائيًا العديد من السمات المرشحة من البيانات العلائقية باستخدام أسلوب يُسمى Deep Feature Synthesis.
البيانات العلائقية والكيانات
غالبًا ما تمتد البيانات الواقعية عبر عدة جداول مترابطة: العملاء والطلبات والمنتجات. تنمذج Featuretools هذه العلاقات وتنشئ تلقائيًا سمات تجمع البيانات عبر الروابط بينها.
إنشاء EntitySet
إن EntitySet هو الحاوية التي تضم إطارات بياناتك والعلاقات بينها. ابدأ بإنشاء مجموعة فارغة.
import featuretools as ft
es = ft.EntitySet(id="customers_data")إضافة إطارات البيانات
يسجّل es.add_dataframe جدولًا. وتحدّد له index (مفتاحًا فريدًا)، ويمكنك اختياريًا تحديد time_index للبيانات الزمنية.
import featuretools as ft
es = es.add_dataframe(
dataframe_name="customers",
dataframe=customers_df,
index="customer_id",
)
es = es.add_dataframe(
dataframe_name="orders",
dataframe=orders_df,
index="order_id",
time_index="order_date",
)تعريف العلاقات
وضّح لـ Featuretools كيفية اتصال الجداول باستخدام add_relationship: إذ يربط مفتاحٌ رئيسي مفتاحًا أجنبيًا في الجدول الفرعي (فكل عميل لديه عدة طلبات).
es = es.add_relationship(
"customers", "customer_id",
"orders", "customer_id",
)التوليف العميق للسمات
إن DFS (ft.dfs) هو المحرك. فهو يكدّس العمليات عبر العلاقات لإنشاء سمات مثل "متوسط قيمة الطلب لكل عميل" دون أن تكتب تعليمات برمجية لإنشاء كل سمة.
import featuretools as ft
feature_matrix, feature_defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
)بدائيات التجميع
تلخّص بدائيات التجميع صفوف الجدول الفرعي وترفع ملخصها إلى الجدول الرئيسي: SUM وMEAN وCOUNT وMAX وSTD. وبذلك تحوّل العديد من الطلبات إلى إحصاءات خاصة بكل عميل.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
agg_primitives=["mean", "sum", "count", "max"],
)بدائيات التحويل
تعمل بدائيات التحويل داخل صف واحد أو جدول واحد: مثل استخراج الشهر من تاريخ، أو حساب الزمن المنقضي، أو أخذ القيم المطلقة.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
trans_primitives=["month", "weekday", "time_since_previous"],
)التحكم في العمق باستخدام max_depth
يحدّد max_depth عدد البدائيات التي يمكن تكديسها. فالعمق 1 يعني التجميعات المباشرة، بينما يطبّق العمق 2 تحويلًا ثم تجميعًا (مثل متوسط يوم الأسبوع للطلبات). وكلما زاد العمق زاد عدد السمات، لكن زادت أيضًا مخاطرها.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
max_depth=2,
)استخدام مصفوفة السمات
إن feature_matrix الناتجة هي إطار بيانات منظم، مفهرس بالكيان الهدف، وجاهز لإدخاله إلى نموذج. ويوثّق feature_defs كل سمة تم إنشاؤها.
print(feature_matrix.shape)
print(feature_matrix.head())
X = feature_matrix.fillna(0)
# now train any sklearn model on Xنقاط القوة والتنبيهات
تنشئ Featuretools العديد من السمات بسرعة وتكشف الإشارات الموجودة في العلاقات بين البيانات. لكنها قد تنشئ مئات الأعمدة، لذا اجمع استخدامها مع اختيار السمات. وانتبه إلى تسرّب البيانات من خلال ضبط cutoff_time بصورة صحيحة عند التعامل مع البيانات الزمنية.
اختبار سريع
اختبر معرفتك بـ Featuretools.
مراجعة
مراجعة: تعمل Featuretools على أتمتة هندسة السمات. أنشئ EntitySet، وسجّل الجداول باستخدام es.add_dataframe، وعرّف العلاقات، ثم شغّل ft.dfs مع max_depth. ترفع بدائيات التجميع صفوف الجداول الفرعية إلى الجداول الرئيسية، بينما تعمل بدائيات التحويل داخل الصف. وتكون feature_matrix جاهزة للنموذج، لكن اجمع استخدامها مع اختيار السمات.
الأسئلة الشائعة
هل درس «هندسة الميزات المؤتمتة باستخدام Featuretools» مجاني؟
نعم — نص درس «هندسة الميزات المؤتمتة باستخدام Featuretools» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «هندسة الميزات المؤتمتة باستخدام Featuretools»؟
EntitySet وDFS (التوليف العميق للميزات) وبدائيات الميزات وتجميعات التكديس تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «هندسة الميزات المؤتمتة باستخدام Featuretools»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساليب اختيار السمات
- إنشاء السمات التفاعلية ومتعددة الحدود
- ترميز الهدف ومعالجة الفئات المتقدمة
- هندسة الميزات المؤتمتة باستخدام Featuretools