بعد فحص بياناتك باستخدام تقنيات الإحصاءات وعرض البيانات، عليك تحويل بياناتك بطرق تساعد في تدريب النموذج بفعالية أكبر. والهدف من التسوية هو تحويل الميزات لتكون ضمن نطاق مماثل. على سبيل المثال، ضع في اعتبارك الميزتين التاليتين:
- تتراوح سمة
X
بين 154 و24,917,482. - تمتد الميزة
Y
إلى النطاق من 5 إلى 22.
تمتد هاتان الميزتان على نطاقين مختلفين جدًا. قد تعالج التسوية X
وY
بحيث تمتدان على نطاق مشابه، ربما من 0 إلى 1.
توفّر عملية التسويف المزايا التالية:
- يساعد في تقارب النماذج بشكل أسرع أثناء التدريب. عندما يكون للميزات المختلفة نطاقات مختلفة، يمكن أن تؤدي خوارزمية انحدار التدرج إلى "الارتداد" والتقارب البطيء. ومع ذلك، فإنّ أدوات التحسين الأكثر تقدمًا، مثل Adagrad وAdam، تحمي من هذه المشكلة من خلال تغيير معدّل التعلّم الفعّال بمرور الوقت.
- يساعد ذلك النماذج على استنتاج توقّعات أفضل. عندما يكون للميزات المختلفة نطاقات مختلفة، قد يقدّم النموذج الناتج توقّعات أقل فائدة إلى حدّ ما.
- يساعد في تجنُّب "فخ NaN" عندما تكون قيم السمات مرتفعة جدًا.
NaN هو اختصار لعبارة
ليس رقمًا. عندما تتجاوز قيمة في أحد النماذج الحد الأقصى لدقة النقطة العائمة، يضبط النظام القيمة على
NaN
بدلاً من عدد. عندما يصبح رقم واحد في النموذج NaN، تصبح الأرقام الأخرى في النموذج NaN أيضًا في نهاية المطاف. - تساعد هذه العملية النموذج على تعلم الأوزان المناسبة لكلّ ميزة. بدون تكييف الميزات، يولي النموذج اهتمامًا كبيرًا للميزات ذات النطاقات الواسعة ولا يولي اهتمامًا كافيًا للميزات ذات النطاقات الضيقة.
ننصحك بتسويه الخصائص الرقمية التي تغطي نطاقات مختلفة بشكلٍ واضح (مثل العمر والدخل).
ننصحك أيضًا بتسويه خاصية رقمية واحدة تغطي نطاقًا واسعًا،
مثل city population.
.
ننصحك بالانتباه إلى السمتَين التاليتَين:
- أدنى قيمة للميزة
A
هي -0.5 وأعلى قيمة هي +0.5. - أدنى قيمة للميزة
B
هي -5.0 وأعلى قيمة هي +5.0.
نطاقا الميزة A
والميزة B
ضيقان نسبيًا. ومع ذلك، فإنّ
نطاق العنصر B
أوسع بعشر مرات من نطاق العنصر A
. لذلك:
- في بداية التدريب، يفترض النموذج أنّ الميزة
B
أكثر "أهمية" بعشر مرّات من الميزةA
. - سيستغرق التدريب وقتًا أطول من المعتاد.
- قد يكون النموذج الناتج أقل من المستوى المطلوب.
سيكون الضرر الإجمالي الناتج عن عدم تسويتها صغيرًا نسبيًا، ومع ذلك، ننصحك بتسويتها على المقياس نفسه، ربما من -1.0 إلى +1.0.
لنلقِ الآن نظرة على سمتَين تتباين نطاقاتهما بشكل أكبر:
- أدنى قيمة للميزة
C
هي -1 وأعلى قيمة هي +1. - أدنى قيمة للميزة
D
هي 5000 والقيمة الأعلى هي 1,000,000,000.
في حال عدم تسويف السمة C
والسمة D
، من المرجّح أن يكون نموذجك
غير مثالي. علاوة على ذلك، سيستغرق التدريب وقتًا أطول
للتجمع أو حتى الفشل في التقارب تمامًا!
يتناول هذا القسم ثلاث طرق شائعة للتسوية:
- التكبير/التصغير الخطي
- تكبير الدرجة المعيارية
- تكبير السجلّ
يتناول هذا القسم أيضًا الاقتصاص. رغم أن الاقتصاص ليس أسلوبًا حقيقيًا للتسوية، يعمل الاقتصاص على ترويض الميزات الرقمية غير المنحرفة إلى نطاقات تنتج نماذج أفضل.
التحجيم الخطي
التصغير/التكبير الخطي (يُختصر عادةً إلى التصغير/التكبير فقط) يعني تحويل قيم النقطة العائمة من نطاقها الطبيعي إلى نطاق عادي، وعادةً ما يكون من 0 إلى 1 أو -1 إلى +1.
يُعدّ التكبير/التصغير الخطي خيارًا جيدًا عند استيفاء جميع الشروط التالية:
- لا يتغيّر الحدان الأدنى والعلوي للبيانات كثيرًا بمرور الوقت.
- تحتوي الميزة على عدد قليل من القيم الشاذة أو لا تحتوي على أي قيم شاذة، وتلك القيم الشاذة ليست شديدة.
- يتم توزيع الميزة بشكلٍ موحّد تقريبًا على مستوى نطاقها. وهذا يعني أن المدرج التكراري يعرض الأشرطة المتساوية تقريبًا لمعظم القيم.
لنفترض أنّ المستخدِم age
هو ميزة. يُعد التحجيم الخطي أسلوب تسوية جيدًا لـ age
للأسباب التالية:
- تتراوح الحدود الدنيا والعليا التقريبية بين 0 و100.
- يحتوي
age
على نسبة صغيرة نسبيًا من القيم الشاذة. لا يتجاوز عدد الأشخاص الذين تزيد أعمارهم عن 100 عام% 0.3 من السكان. - على الرغم من أنّ فئات عمرية معيّنة يتم تمثيلها بشكل أفضل من غيرها، يجب أن تحتوي مجموعة البيانات الكبيرة على أمثلة كافية لجميع الفئات العمرية.
تمرين: التحقّق من فهمك
لنفترض أنّ نموذجك يتضمّن سمة باسمnet_worth
تحتوي على القيمة الصافية
لأشخاص مختلفين. هل سيكون التكبير/التصغير الخطي أسلوبًا جيدًا للتسوية
في net_worth
؟ ما سبب ذلك؟
تكبير الدرجة المعيارية
الدرجة Z هي عدد الانحرافات المعيارية التي تكون قيمتها عن المتوسط. على سبيل المثال، إذا كانت القيمة أكبر بمقدار انحرافين معياريين من المتوسط، يكون لها مقياس Z +2.0. إذا كانت القيمة تساوي 1.5 انحرافًا معياريًا أقل من القيمة المتوسطة، تكون لها درجة Z -1.5.
يشير تمثيل ميزة باستخدام تحجيم النتيجة المعيارية إلى تخزين النتيجة المعيارية لهذه الميزة في متجه الميزة. على سبيل المثال، يعرض الشكل التالي اثنين من الرسوم البيانية للشرائح:
- على يمين الصفحة، توزيع طبيعي عادي.
- على يسار الصفحة، التوزيع نفسه بعد تسويته باستخدام مقياس النتيجة المعيارية.
يُعدّ توسيع نطاق الدرجة القياسية (الدرجة z) خيارًا جيدًا أيضًا للبيانات مثل تلك الموضّحة في الشكل التالي، والتي تتضمّن توزيعًا طبيعيًا بشكل غامض فقط.
يُعدّ "معدّل Z" خيارًا جيدًا عندما تتّبع البيانات توزيعًا طبيعيًا أو توزيعًا يشبه التوزيع الطبيعي إلى حدّ ما.
يُرجى ملاحظة أن بعض التوزيعات قد تكون طبيعية داخل الجزء الأكبر من نطاقها، ولكنها لا تزال تحتوي على قيم استثنائية للغاية. على سبيل المثال، قد تتوافق جميع
النقاط تقريبًا في ميزة net_worth
بشكلٍ جيد مع 3 انحرافات معيارية،
ولكن قد تكون بعض الأمثلة على هذه الميزة مئات الانحرافات المعيارية
بعيدًا عن المتوسط. في هذه الحالات، يمكنك الجمع بين توسيع نطاق "مقياس Z" مع
شكل آخر من أشكال التسويف (عادةً ما يكون الاقتصاص) للتعامل مع هذا الموقف.
تمرين: التحقق من فهمك
لنفترض أنّ النموذج يتدرّب على سمة باسمheight
تحتوي على قياسات الطول الخاصة بالنساء البالغات لعشرة ملايين امرأة. هل سيكون استخدام مقياس الدرجة المعيارية (Z-score) أسلوبًا جيدًا للتوحيد
في height
؟ ما سبب ذلك؟
تحجيم السجل
تُستخدَم طريقة "تكبير اللوغاريتم" لاحتساب اللوغاريتم للقيمة الأولية. من الناحية النظرية، يمكن أن يكون للوغاريثم أي أساس، ولكن من الناحية العملية، يحسب عادةً توسيع اللوغاريتم اللوغاريثم الطبيعي (ln).
يكون التكبير اللوغاريتمي مفيدًا عندما تكون البيانات متوافقة مع توزيع قانون القوة. بشكل عام، يبدو توزيع قانون الطاقة على النحو التالي:
- تضم القيم المنخفضة لـ
X
قيمًا عالية جدًا تبلغY
. - كلما زادت قيم
X
، تنخفض قيمY
بسرعة. ونتيجةً لذلك، تكون القيم العالية لسمةX
مرتبطة بقيم منخفضة جدًا لسمةY
.
تعتبر تقييمات الأفلام مثالاً جيدًا لتوزيع قانون الطاقة. في الشكل التالي، لاحظ:
- تحظى بعض الأفلام بالكثير من تقييمات المستخدمين. (ترتبط القيم المنخفضة لسمة
X
بقيَمY
مرتفعة). - لا تتلقّى معظم الأفلام سوى عدد قليل جدًا من تقييمات المستخدمين. (ترتبط القيم العالية لـ
X
بقيَمY
منخفضة.)
يؤدي تغيير مقياس اللوغاريتم إلى تغيير التوزيع، ما يساعد في تدريب نموذج ينجح في إجراء توقّعات أفضل.
في المثال الثاني، تتوافق مبيعات الكتب مع توزيع قانون الطاقة لأنّه:
- تُباع معظم الكتب المنشورة بعدد صغير من النُسخ، ربما مائة نسخة أو اثنتان.
- تبيع بعض الكتب عددًا معتدلاً من النُسخ، بالآلاف.
- عدد قليل فقط من الأكثر مبيعًا سيبيع أكثر من مليون نسخة.
لنفترض أنّك تدرِّب نموذجًا خطيًا للعثور على العلاقة بين أغلفة الكتب ومبيعاتها مثلاً. إنّ تدريب نموذج خطي على القيم الأولية يجب أن يجد شيئًا عن أغلفة الكتب التي تبيع مليون نسخة يكون أكثر فعالية بمقدار 10,000 مرة من أغلفة الكتب التي تبيع 100 نسخة فقط. ومع ذلك، فإن توسيع نطاق جميع أرقام المبيعات يجعل المهمة أكثر جدوى بكثير. على سبيل المثال، اللوغاريتم رقم 100 هو:
~4.6 = ln(100)
في حين أنّ اللوغاريتم لـ 1,000,000 هو:
~13.8 = ln(1,000,000)
وبالتالي، فإنّ اللوغاريتم لـ 1,000,000 أكبر بثلاث مرات تقريبًا من اللوغاريتم لـ 100. يمكنك على الأرجح تخيل أنّ غلاف كتاب من الكتب الأكثر مبيعًا يكون أثره (بطريقة ما) ثلاثة أضعاف غلاف كتاب يُباع بكميات صغيرة.
الاقتصاص
الاقتصاص هو أسلوب يهدف إلى تقليل تأثير القيم الشاذّة للغاية. باختصار، تعمل ميزة "الاقتصاص" عادةً على وضع حد أقصى (تقليل) لقيمة القيم الشاذة إلى قيمة محددة. قد تبدو فكرة الاقتصاص غريبة، ولكن يمكن أن تكون فعالة جدًا.
على سبيل المثال، تخيل مجموعة بيانات تحتوي على سمة باسم roomsPerPerson
،
التي تمثّل عدد الغرف (إجمالي الغرف مقسومًا
على عدد المقيمين) في منازل مختلفة. يوضح الرسم التالي أن أكثر من 99% من قيم الخصائص تتوافق مع توزيع طبيعي (تقريبًا متوسط 1.8 وانحراف معياري 0.7). ومع ذلك، تحتوي الميزة على
بضع قيم شاذة، وبعضها شديد الشذوذ:
كيف يمكنك تقليل تأثير القيم الشاذة القصوى؟ حسنًا، فإنّ )"مخطّط الشرائح)" ليس توزيعًا متساويًا أو توزيعًا طبيعيًا أو توزيعًا وفقًا لقانون القوة. ماذا لو استخدمت الحد الأقصى أو المقطع كحد أقصى لقيمة
roomsPerPerson
بقيمة عشوائية، لنفترض 4.0؟
لا يعني اقتصاص قيمة الميزة إلى 4.0 أن النموذج يتجاهل جميع القيم الأكبر من 4.0. بدلاً من ذلك، يعني ذلك أنّ جميع القيم التي كانت أكبر من 4.0 أصبحت الآن 4.0. وهذا ما يفسّر الارتفاع المفاجئ في الإصدار 4.0. على الرغم من هذا الارتفاع، أصبحت مجموعة العناصر الموسّعة الآن أكثر فائدة من البيانات الأصلية.
يُرجى الانتظار. هل يمكنك حقًا تقليل كل قيمة استثنائية إلى حد أعلى عشوائي؟ عند تدريب أحد النماذج، نعم.
يمكنك أيضًا اقتصاص القيم بعد تطبيق أشكال أخرى من التسويف. على سبيل المثال، لنفترض أنّك تستخدِم توسيع "مقياس الانحراف المعياري"، ولكنّ بعض القيم الشاذة لها قيم مطلقة أكبر بكثير من 3. في هذه الحالة، يمكنك إجراء ما يلي:
- قم بتقسيم نقاط Z أكبر من 3 لتصبح 3 بالضبط.
- اقتصاص نتائج اختبار Z-Score التي تقل عن -3 لتصبح -3 بالضبط
ويمنع الاقتصاص النموذج من إنشاء فهرس زائد للبيانات غير المهمة. ومع ذلك، فإن بعض القيم الاستثنائية مهمة في الواقع، لذا قم باقتصاص القيم بعناية.
ملخّص لتقنيات التسويّة
أسلوب تسوية البيانات | الصيغة | حالات الاستخدام |
---|---|---|
التحجيم الخطي | $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ | عندما تكون الميزة موزّعة بشكلٍ موحّد على سطح نطاق ثابت |
تكبير الدرجة المعيارية | $$ x' = \frac{x - μ}{σ}$$ | عندما لا يحتوي توزيع العناصر على قيم شاذة متطرفة |
تكبير السجلّ | $$ x' = log(x)$$ | عندما تكون الميزة متوافقة مع قانون الطاقة |
الاقتصاص | إذا كان $x > max$، اضبط $x' = max$ إذا كان $x < min$، اضبط $x' = min$ |
عندما تحتوي الميزة على قيم شاذة للغاية |
تمرين: اختبار معلوماتك
لنفترض أنّك تعمل على تطوير نموذج يتنبّأ
بإنتاجية مركز البيانات استنادًا إلى درجة الحرارة المقاسة داخل مركز البيانات.
تقع جميع قيم temperature
تقريبًا في مجموعة البيانات
بين 15 و30 (درجة مئوية)، باستثناء الحالات التالية:
- مرة أو مرتين في السنة، في الأيام الحارة جدًا، يتم تسجيل بعض القيم التي تتراوح بين
31 و45 في
temperature
. - يتم ضبط كل نقطة في
temperature
على 1,000 بدلاً من درجة الحرارة الفعلية.
ما هو أسلوب التسوية المعقولة للسمة temperature
؟
وتُعد القيم 1,000 أخطاء، ويجب حذفها بدلاً من اقتصاصها.
القيم بين 31 و45 هي نقاط بيانات مشروعة. من المحتمل أن يكون الاقتصاص فكرة جيدة لهذه القيم، بافتراض أنّ مجموعة البيانات لا تحتوي على أمثلة كافية في نطاق درجة الحرارة هذا لتدريب النموذج لتقديم تنبؤات جيدة. ومع ذلك، أثناء الاستنتاج، يُرجى العِلم أنّ النموذج المقتطع سيقدّم بالتالي التوقّع نفسه لشدَّة حرارة تبلغ 45 درجة وشدَّة حرارة تبلغ 35 درجة.