البيانات الفئوية: المفردات والترميز الأحادي

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

اسم العنصر عدد الفئات أمثلة على الفئات
snowed_today 2 صحيح، خطأ
skill_level 3 مبتدئ، ممارس، خبير
season 4 الشتاء والربيع والصيف والخريف
day_of_week 7 الاثنين والثلاثاء والأربعاء
كوكب 8 عطارد والزهرة والأرض

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

على سبيل المثال، لنفترض أنّك تنشئ نموذجًا لتوقّع سعر سيارة استنادًا، جزئيًا، إلى سمة تصنيفية باسم car_color. ربما تكون السيارات الحمراء أكثر قيمة من السيارات الخضراء. بما أنّ المصنّعين يوفّرون عددًا محدودًا من الألوان الخارجية، فإنّ car_color هو سمة تصنيفية منخفضة الأبعاد. يوضّح الرسم التوضيحي التالي مفردات (قيم محتملة) لسمة car_color:

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

التمرين: التحقّق من حدسك

صحيح أو خطأ: يمكن لنموذج تعلُّم الآلة التدريب مباشرةً على قيم السلاسل الأولية، مثل "أحمر" و"أسود"، بدون تحويل هذه القيم إلى متجهات رقمية.
صحيح
أثناء التدريب، لا يمكن للنموذج التعامل إلا مع الأعداد الكسورية. السلسلة "Red" ليست عددًا عشريًا. عليك تحويل السلاسل مثل "Red" إلى أعداد نقطية عائمة.
خطأ
لا يمكن تدريب نموذج تعلُّم الآلة إلا على الميزات التي تحتوي على قيم نقطية عائمة، لذا عليك تحويل هذه السلاسل إلى قيم نقطية عائمة قبل التدريب.

أرقام الفهرس

يمكن لنماذج تعلُّم الآلة معالجة أعداد النقاط العائمة فقط. وبالتالي، يجب تحويل كل سلسلة إلى رقم فهرس فريد، كما في الرسم التوضيحي التالي:

الشكل 2.  يرتبط كل لون بقيمة عدد صحيح فريدة. على سبيل المثال،
      يكون اللون "أحمر" مرتبطًا بالرقم الصحيح 0، ويكون اللون "برتقالي" مرتبطًا بالرقم الصحيح
      1، وهكذا.
الشكل 2. الميزات المفهرَسة

تمرين: تحقق من حدسك

هل يجب تدريب النموذج مباشرةً على أرقام الفهرس المعروضة في الشكل 2؟
نعم
إذا تم تدريب النموذج على أرقام الفهرس، سيتعامل مع كل رقم بشكلٍ غير صحيح على أنّه قيمة رقمية وسيعتبر "Black" (فهرس رقم 5) أكثر أهمية بالنسبة إلى النموذج بمقدار 5 مرات مقارنةً ب"Orange" (فهرس رقم 1).
لا
يجب ألا يتم تدريب النموذج على أرقام الفهرس. وإذا كان الأمر كذلك، سيتعامل النموذج مع كل رقم فهرس على أنّه قيمة عددية ويُعتبر "Black" (رقم الفهرس 5) أكثر أهمية للنموذج بمقدار 5 مرات من "Orange" (رقم الفهرس 1).

ترميز أحادي

الخطوة التالية في إنشاء قاموس هي تحويل كل رقم فهرس إلى ترميز واحد ساخن. في ترميز واحد فعال:

  • يتم تمثيل كل فئة بمتجه (صفيف) من N عنصرًا، حيث يكون N هو عدد الفئات. على سبيل المثال، إذا كان لدى car_color ثمانية تصانيف ممكنة، سيكون للمتجه الثنائي الحالة الذي يمثّل car_color ثمانية عناصر.
  • يكون عنصر واحد بالضبط في متجه أحادي القيمة له القيمة 1.0، ويحمل كل العناصر المتبقية القيمة 0.0.

على سبيل المثال، يعرض الجدول التالي ترميز "واحدة ساخنة" لكلّ في car_color:

الميزة أحمر Orange بالأزرق أصفر أخضر أسود أرجواني بالبني
"أحمر" 1 0 0 0 0 0 0 0
"برتقال" 0 1 0 0 0 0 0 0
"أزرق" 0 0 1 0 0 0 0 0
"أصفر" 0 0 0 1 0 0 0 0
"أخضر" 0 0 0 0 1 0 0 0
"أسود" 0 0 0 0 0 1 0 0
"الأرجواني" 0 0 0 0 0 0 1 0
"بني" 0 0 0 0 0 0 0 1

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

يوضّح الرسم التوضيحي التالي عمليات التحويل المختلفة في تمثيل المفردات:

الشكل 3. مخطّط بياني للعملية الشاملة لربط الفئات بمجموعة ناقلات الخصائص
 في الرسم البياني، تكون ميزات الإدخال هي "أصفر" و"برتقالي" و"أزرق" و"أزرق" مرة أخرى.  يستخدم النظام مفردات محفوظة
      (مثل "أحمر" = 0 و"برتقالي" = 1 و"أزرق" = 2 و"أصفر" = 3
      وما إلى ذلك) لربط قيمة الإدخال بمعرّف. وبالتالي، يربط النظام اللون "أصفر"،
      ولون "برتقالي"، ولون "أزرق"، ولون "أزرق" بالأرقام 3 و1 و2 و2. بعد ذلك، يحوّل النظام
      هذه القيم إلى متجه ميزة أحادية القيمة. على سبيل المثال، إذا كان لدينا نظام
      يتضمّن ثمانية ألوان محتملة، يصبح الرقم 3 هو 0, 0, 0, 1, 0, 0, 0, 0.
الشكل 3. العملية الشاملة لربط الفئات بمتجهات العناصر

التمثيل المتناثر

تُعرف السمة التي تكون قيمها غالبًا صفرًا (أو فارغة) باسم سمة متناثرة. غالبًا ما تكون العديد من السمات الفئوية، مثل car_color، سمات متناثرة. التمثيل المحدود يعني تخزين موضع 1.0 في متجه متفرق. على سبيل المثال، ناقل القيمة الواحدة لـ "Blue" هو:

[0، 0، 1، 0، 0، 0، 0، 0]

بما أنّ 1 في الموضع 2 (عند بدء العد من 0)، فإنّ التمثيل المبعثر للصفيف أحادي القيمة السابق هو:

2

يُرجى ملاحظة أنّ التمثيل المتفرق يستهلك ذاكرة أقل بكثير من المتجه الثنائي القيمة المكوّن من ثمانية عناصر. من المهم أن يتم تدريب النموذج على المتجه أحادي الحالة، وليس على التمثيل المتفرق.

القيم الشاذة في البيانات الفئوية

مثل البيانات الرقمية، تحتوي البيانات الفئوية أيضًا على قيم استثنائية. لنفترض أنّ car_color لا يحتوي فقط على الألوان الرائجة، بل يحتوي أيضًا على بعض الألوان الاستثنائية التي نادرًا ما يتم استخدامها، مثل "Mauve" أو "Avocado". وبدلاً من تصنيف كل لون من هذه الألوان الاستثنائية ضمن فئة منفصلة، يمكنك تجميعها في فئة واحدة "شاملة" باسم خارج المفردات (OOV). بعبارة أخرى، يتم تجميع جميع ألوان القيم الشاذة في مجموعة واحدة للقيم الشاذة. يتعرّف النظام على وزن واحد لحزمة القيم الشاذة هذه.

ترميز السمات الفئوية العالية الأبعاد

تحتوي بعض السمات الفئوية على عدد كبير من السمات، مثل تلك الواردة في الجدول التالي:

اسم العنصر عدد الفئات أمثلة على الفئات
words_in_english ~500,000 "سعيد"، "يمشي"
US_postal_codes 42000 تقريبًا ‎"02114", "90301"
last_names_in_Germany ‎~850,000 "Schmidt"، "Schneider"

عندما يكون عدد الفئات مرتفعًا، يكون ترميز One-hot عادةً خيارًا سيئًا. تكون فيديوهات التضمين، المفصّلة في وحدة تضمين منفصلة، خيارًا أفضل بكثير. تؤدّي عمليات التضمين إلى تقليل عدد السمات بشكل كبير، ما يعود بالفائدة على النماذج بطريقتَين مهمتَين:

  • يتم عادةً تدريب النموذج بشكل أسرع.
  • عادةً ما يستنتج النموذج الذي تم إنشاؤه التوقّعات بشكل أسرع. وهذا يعني أنّ زمن استجابة النموذج أقل.

التجزئة (المعروفة أيضًا باسم خدعة التجزئة ) هي طريقة أقل شيوعًا لتقليل عدد السمات.