التمثيل: هندسة الخصائص

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

ربط البيانات الأولية بالميزات

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

يجب أن تمثل العديد من نماذج التعلم الآلي الميزات كمتجهات مرقمة بالفعل نظرًا لأنه يجب ضرب قيم الخصائص في أوزان النموذج.

يتم تعيين البيانات الأولية لمتجه خاصية من خلال عملية تسمى هندسة الخصائص.

الشكل 1. تربط هندسة الخصائص البيانات الأولية بميزات تعلُّم الآلة.

تعيين القيم الرقمية

لا تحتاج بيانات العدد الصحيح والنقطة العائمة إلى ترميز خاص لأنه يمكن ضربها في الوزن الرقمي. كما هو مقترح في الشكل 2، يعد تحويل قيمة العدد الصحيح الأولي 6 إلى قيمة الميزة 6.0 أمرًا بسيطًا:

مثال على ميزة يمكن نسخها مباشرةً من البيانات الأولية

الشكل 2. ربط قيم الأعداد الصحيحة بقيم النقاط العائمة

تعيين القيم الفئوية

تتضمن الميزات الفئوية مجموعة منفصلة من القيم المحتملة. على سبيل المثال، قد تكون هناك ميزة تسمى street_name تضم خيارات تشمل:

{'Charleston Road', 'North Shoreline Boulevard', 'Shorebird Way', 'Rengstorff Avenue'}

نظرًا لأن النماذج لا يمكنها ضرب السلاسل في الأوزان التي تم تعلمها، فإننا نستخدم هندسة الخصائص لتحويل السلاسل إلى قيم رقمية.

يمكننا تحقيق ذلك من خلال تحديد تعيين من قيم الخصائص، الذي سنشير إليه على أنه vocabulary من القيم المحتملة، إلى الأعداد الصحيحة. نظرًا لعدم ظهور كل شارع في العالم في مجموعة البيانات الخاصة بنا، يمكننا تجميع جميع الشوارع الأخرى في فئة "أخرى" شاملة، والمعروفة باسم مجموعة OOV (خارج المفردات).

باستخدام هذا المنهج، إليك كيفية تعيين أسماء الشوارع إلى أرقام:

  • خريطة طريق تشارلستون إلى 0
  • ارسم خريطة North Shoreline Boulevard إلى 1
  • تقديم Shorebird Way إلى 2 على الخريطة
  • عرض شارع Rengstorff على الخريطة رقم 3
  • تعيين كل شيء آخر (OOV) إلى 4

ومع ذلك، إذا دمجنا أرقام الفهرس هذه مباشرةً في نموذجنا، سنفرض بعض القيود التي قد تكون مفيدة:

  • سوف نتعلم وزن واحد ينطبق على جميع الشوارع. على سبيل المثال، إذا تعلّمنا أن الوزن 6 لـ street_name، سنضربه في 0 لطريق تشارلستون، وفي 1 لشارع نورث شورلاين، و2 لطريق Shorebird، وهكذا. ضع في الاعتبار نموذجًا يتنبأ بأسعار المنازل باستخدام street_name كميزة. من غير المحتمل أن يكون هناك تعديل خطي للسعر بناءً على اسم الشارع، وعلاوة على ذلك، قد يفترض ذلك أنك طلبت الشوارع بناءً على متوسط سعر منزلها. يحتاج نموذجنا إلى مرونة تعلم الأوزان المختلفة لكل شارع والتي ستتم إضافتها إلى السعر المقدّر باستخدام الميزات الأخرى.

  • ولا نأخذ في الاعتبار الحالات التي قد تتطلّب السمة street_name قيَمًا متعددة. على سبيل المثال، تقع العديد من المنازل في زاوية شارعَين، وما مِن طريقة لترميز هذه المعلومات في القيمة street_name إذا كانت تحتوي على فهرس واحد.

لإزالة هذين القيدين، يمكننا بدلاً من ذلك إنشاء متجه ثنائي لكل ميزة فئوية في النموذج الذي يمثل القيم على النحو التالي:

  • بالنسبة إلى القيم التي تنطبق على المثال، اضبط عناصر المتجه المقابلة على 1.
  • اضبط جميع العناصر الأخرى على 0.

طول هذا المتجه يساوي عدد العناصر في المفردات. يُطلق على هذا التمثيل اسم ترميز واحد فعال عندما تكون القيمة المفردة 1، وترميز متعدد النقاط عندما تكون القيم المتعددة 1.

يوضح الشكل 3 ترميزًا واحدًا فعالاً لشارع معين: Shorebird Way. قيمة العنصر في المتجه الثنائي لـ Shorebird Way هي 1، بينما قيمة عناصر جميع الشوارع الأخرى هي 0.

يتم ربط قيمة سلسلة (

الشكل 3. تحديد عنوان الشارع باستخدام ترميز واحد فقط

تنشئ هذه الطريقة بفعالية متغيرًا منطقيًا لكل قيمة ميزة (على سبيل المثال، اسم الشارع). هنا، إذا كان المنزل على Shorebird Way، فإن القيمة الثنائية هي 1 فقط لـ Shorebird Way. وبالتالي، يستخدم النموذج الوزن فقط لـ Shorebird way.

وبالمثل، إذا كان المنزل في زاوية شارعين، فسيتم تعيين قيمتين ثنائيتين على 1، ويستخدم النموذج كلا المقياسين الخاصين بهما.

تمثيل متناثر

افترض أن لديك 1,000,000 اسم شوارع مختلف في مجموعة البيانات التي أردت تضمينها كقيم لـ street_name. بشكل صريح، يمثل إنشاء متجه ثنائي لعدد 1000000 عنصر حيث يكون عنصر واحد أو عنصرين فقط صحيحًا تمثيلاً غير فعال للغاية من حيث كل من التخزين ووقت الحساب عند معالجة هذه المتجهات. في هذه الحالة، هناك منهج شائع يتمثل في استخدام تمثيل متفرق يتم فيه تخزين القيم غير الصفرية فقط. وفي حالة تمثيل البيانات ناقصة، لا يزال من الممكن معرفة وزن نموذج مستقل لكل قيمة ميزة، كما هو موضح أعلاه.