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

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

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

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

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

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

تمرين: التحقّق من فهمك

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

أرقام الفهرس

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

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

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

ترميز أحادي

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

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

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

الميزة أحمر برتقالي بالأزرق أصفر أخضر أسود أرجواني بالبني
"أحمر" 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 ‎42,000 تقريبًا ‎"02114", "90301"
last_names_in_Germany ‎~850,000 "Schmidt"، "Schneider"

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

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

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

بعبارة موجزة، تُحدِّد عملية التجزئة فئة (مثل لون) إلى عدد صغير من الأعداد الصحيحة، وهو رقم "الحزمة" التي ستحتوي على هذه الفئة.

في ما يلي تفاصيل تنفيذ خوارزمية التجزئة:

  1. اضبط عدد الحِزم في متجه الفئات على N، حيث يكون N أقل من إجمالي عدد الفئات المتبقية. على سبيل المثال، لنفترض أنّ N = 100.
  2. اختَر دالة تجزئة. (غالبًا ما يتم اختيار نطاق قيم التجزئة أيضًا).
  3. مرِّر كل فئة (على سبيل المثال، لون معيّن) من خلال دالة التجزئة هذه، ما يؤدي إلى إنشاء قيمة تجزئة، مثل 89237.
  4. خصِّص لكلّ حزمة رقم فهرس لقيمة التجزئة الناتجة بقسمة N. في هذه الحالة، حيث يكون N هو 100 وقيمة التجزئة هي 89237، يكون ناتج modulo ‏37 لأنّ 89237 % 100 هو 37.
  5. أنشئ ترميزًا أحاديًا لكل حزمة باستخدام أرقام الفهرس الجديدة هذه.

لمزيد من التفاصيل حول تجزئة البيانات، يُرجى الاطّلاع على القسم التعشيب في وحدة أنظمة تعلُّم الآلة في مرحلة الإنتاج.