freeCodeCamp/guide/arabic/machine-learning/feature-engineering/index.md

12 KiB
Raw Blame History

title localeTitle
Feature Engineering هندسة الميزة

هندسة الميزة

يعمل التعلم الآلي بشكل أفضل مع البيانات المتكونة بشكل جيد. تصف الهندسة ميزة تقنيات معينة للتأكد من أننا نعمل بأفضل تمثيل ممكن للبيانات التي جمعناها.

لماذا تعد ميزة الهندسة مفيدة؟

  • تؤثر كمية ونوعية الميزات على القدرة التنبؤية للنموذج. المزيد من الميزات عالية الجودة في نموذج أفضل.
  • قم ببناء نماذج أفضل عن طريق أخذ البيانات التي لديك وزيادتها بمعلومات إضافية ذات صلة بالموضوع تم الحصول عليها في مكان آخر.
  • يمكن أن تؤدي الميزات الجديدة إلى "اختراقات" في قدرة النموذج على التنبؤ بنتائج قوية.

تحذيرات لميزة الهندسة

  • يمكن أن يؤدي إنشاء ميزات جديدة استنادًا إلى ميزات معروفة إلى عملية متعددة الأبعاد ، وهي حالة تكون فيها ميزتان مرتبطتان خطيًا. هذا يرقى إلى "الغمس المزدوج" في نموذج ويمكن أن يؤدي إلى أكثر من المناسب.
  • الكثير ليس دائما جيدا. يمكن أن تؤدي إضافة ميزات ذات قدرات تنبؤية ضعيفة إلى زيادة الوقت الحسابي دون إضافة مزايا للنموذج.

أمثلة على هندسة الميزات:

  • إذا كانت لديك ميزة "تاريخ" ، فجرّب تضمينها في "يوم من الأسبوع" أو "أسبوع من السنة" أو "شهر السنة". وبالمثل ، قم بإنشاء ميزة AM / PM من "الوقت من اليوم".
  • قم بإجراء تخفيض للبيانات مثل PCA ثم أضف المتجهات من PCA إلى البيانات كميزات جديدة.
  • إنتاج ميزات جديدة من خلال تحويل الميزات الحالية عدديًا. ومن الأمثلة على ذلك تحويل البيانات أو ترميز الخصائص الفئوية كأرقام (تحويل منخفض / متوسط / مرتفع إلى 1/2/3).
  • استخدم بيانات التعداد لإنشاء ميزات جديدة (مثل متوسط ​​الدخل) ، بافتراض أن مجموعة البيانات الخاصة بك تحتوي على معلومات الموقع (مدينة ، ولاية ، مقاطعة ، وما إلى ذلك).

فيما يلي اثنين من تقنيات الهندسة ميزة: التحجيم والاختيار.

ميزة التحجيم

لنفترض أن بياناتك تحتوي على الوزن والطول للأشخاص. الأرقام الخام من هاتين الميزتين تحتوي على فرق كبير (على سبيل المثال 80 كجم و 180 سم ، أو 175 رطلاً مقابل 5.9 قدم) ، مما قد يؤثر على نتائج بعض خوارزمية تعلم الآلة. هذا هو الحال خاصة بالنسبة للخوارزميات التي تستخدم وظائف المسافة .

لإصلاح هذا isse ، نحن نمثل الأرقام الخام في نطاق 0 إلى 1. يمكننا تحقيق ذلك باستخدام الصيغة: (x - xMin) / (xMax - xMin) .

باستخدام هذه الصيغة ، يجب أن نولي اهتماما خاصا للقيم المتطرفة ، لأن هذه يمكن أن تؤثر على النتيجة بشكل كبير عن طريق دفع xMax للأعلى وضغط xMin. هذا هو السبب في كثير من الأحيان يتم القضاء على القيم المتطرفة قبل التحجيم.

اختيار ميزة

الأمر كله يتعلق بتحديد مجموعة فرعية من الميزات المسؤولة عن الاتجاهات التي نلاحظها في بياناتنا.

لماذا يجب أن نهتم؟ لعنة البعد عدو كبير في أوقات البيانات الكبيرة. لا يمكننا استخدام جميع العشرات لدينا لمئات من الميزات. لن يؤدي ذلك فقط إلى رفع الأبعاد الخاصة ببياناتنا من خلال السقف (2 ^ n ، حيث n هو عدد السمات) ، ولكن في كثير من الأحيان لا يكون هناك أي معنى في حالات الاستخدام المحددة. تخيل الرغبة في التنبؤ بطقس الغد: سيكون من المرجح أن يكون اتجاه الطقس في الأيام الأخيرة أكثر أهمية في هذا السيناريو من الأطفال المولودين في الأيام الأخيرة. لذلك يمكنك بسهولة القضاء على ميزة الأطفال.

لكن ننسى الأطفال في الوقت الحالي ، دعونا نتعمق في التفاصيل.

التصفية والتغليف

نحن هنا وصف اثنين من النهج العامة. تعمل طرق الترشيح بشكل مستقل عن خوارزمية التعلم وطرق التغليف التي اخترتها على دمج المتعلم.

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

تستفيد خوارزميات البحث عن التحيز من تحيز التعلم ، حيث أنها تتضمن نموذج ML الذي اخترته. تعمل هذه الطرق عن طريق إزالة الميزة التي لديها أدنى تغيير في النتيجة عند إزالتها وتكرار هذه العملية حتى تتغير الدرجة بشكل ملحوظ. وهذا يعني تشغيل خوارزمية التعلم مرارًا وتكرارًا ، مما قد يؤدي إلى أوقات حسابية كبيرة. كما أن هذه الطرق تنطوي أيضًا على خطر الإسراف في التركيب ، نظرًا لأنك تقوم بشكل أساسي بتحسين مجموعة الميزات استنادًا إلى طراز ML الذي اخترته.

ملاءمة

هناك طريقة أخرى لتحديد الميزات وهي استخدام BOC (Bayes Optimal Classifier) . القاعدة الأساسية هنا هي:

  • الميزة ذات صلة بقوة إذا كان إزالتها يحط من BOC
  • ميزة ذات صلة ضعيفة إذا لم تكن ذات صلة قوية وإضافتها مع ميزات أخرى تعمل على تحسين BOC
  • خلاف ذلك ميزة غير ذي صلة

حسنا ، ليس دائما. يعتمد ذلك على كمية البيانات المتوفرة لديك وقوة الإشارات المتنافسة. يمكنك مساعدة خوارزمية "التركيز" على ما هو مهم من خلال تسليط الضوء عليه مسبقًا.

  • متغير المؤشر من العتبات: لنفترض أنك تدرس تفضيلات الكحول من قِبل المستهلكين في الولايات المتحدة وأن مجموعة البيانات تحتوي على ميزة عمرية. يمكنك إنشاء متغير مؤشر لعمر> 21 = لتمييز الأشخاص الذين تجاوزوا سن الشرب القانونية.
  • متغير المؤشر من ميزات متعددة: أنت تتوقع أسعار العقارات ولديك ميزات n غرف نوم وحمامات. إذا كانت المنازل التي تحتوي على سريرين وحمامين تحكم قسطًا كخصائص تأجير ، فيمكنك إنشاء متغير مؤشر للإبلاغ عنها.
  • متغير المؤشر للأحداث الخاصة: أنت تُعد مبيعات أسبوعية لموقع تجارة إلكترونية. يمكنك إنشاء متغيرين للمؤشرات لأسابيع الجمعة الأسود وعيد الميلاد.
  • متغير المؤشر لمجموعات الفئات: أنت بصدد تحليل تحويلات موقع الويب وتحتوي مجموعة البيانات على مصدر الزيارات الفصلية للمحتوى. يمكنك إنشاء متغير مؤشر للحركة المدفوعة عن طريق الإبلاغ عن الملاحظات باستخدام قيم مصدر الزيارات "لإعلانات Facebook" أو "Google Adwords".

ميزات التفاعل

يتضمن النوع التالي من هندسة الميزات إبراز التفاعلات بين ميزتين أو أكثر.

هل سبق لك أن سمعت عبارة "المبلغ أكبر من الأجزاء؟" حسنا ، يمكن الجمع بين بعض الميزات لتوفير المزيد من المعلومات أكثر من الأفراد.

على وجه التحديد ، ابحث عن فرص للحصول على مجموع أو اختلاف أو منتج أو حاصل على ميزات متعددة.

* ملاحظة: لا نوصي باستخدام حلقة تلقائية لإنشاء تفاعلات لجميع ميزاتك. هذا يؤدي إلى "انفجار ميزة".

  • مجموع ميزتين: لنفترض أنك ترغب في توقع الإيرادات استنادًا إلى بيانات المبيعات الأولية. لديك ميزات مبيعات الأقلام الزرقاء والأقلام المبيعات السوداء . يمكنك جمع هذه الميزات إذا كنت تهتم فقط بـ sales_pens الإجمالي.
  • الفرق بين اثنين من الميزات: لديك ميزات منزل تاريخ البناء وتاريخ شراء منزل. يمكنك أن تأخذ الفرق بينهما لإنشاء عمر المنزل ميزة at_purchase.
  • منتج من ميزتين: تقوم بتشغيل اختبار التسعير ، ويكون لديك سعر الميزة وتحويل متغير المؤشر. يمكنك أن تأخذ منتجهم لإنشاء أرباح الميزة.
  • حاصل على ميزتين: لديك مجموعة بيانات من الحملات التسويقية تتضمن الميزات n النقرات وعدد مرات الظهور. يمكنك تقسيم النقرات الانطباعات لخلق نسبة النقر إلى الظهور، مما يسمح لك لمقارنة عبر حملات حجم مختلف.

معلومات اكثر: