SMOTE

توضح هذه المقالة كيفية استخدام مكون SMOTE في مصمم التعلم الآلي من Microsoft Azure لزيادة عدد الحالات الممثلة تمثيلاً ناقصاً في مجموعة البيانات المستخدمة في التعلم الآلي. تعد SMOTE طريقة أفضل لزيادة عدد الحالات النادرة من مجرد تكرار الحالات الموجودة.

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

يُرجع المكون مجموعة بيانات تحتوي على العينات الأصلية. يقوم أيضاً بإرجاع عدد من عينات الأقلية الاصطناعية، بناءً على النسبة المئوية التي تحددها.

المزيد حول SMOTE

تقنية فرط عينات الأقليات الاصطناعية (SMOTE) هي تقنية إحصائية لزيادة عدد الحالات في مجموعة البيانات الخاصة بك بطريقة متوازنة. يعمل المكون عن طريق إنشاء نسخ جديدة من حالات الأقلية الموجودة التي تقوم بتوفيرها كمدخلات. تطبيق SMOTE هذا لا يغير عدد حالات الأغلبية.

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

يأخذ SMOTE مجموعة البيانات بأكملها كمدخل، لكنه يزيد النسبة المئوية لحالات الأقليات فقط. على سبيل المثال، لنفترض أن لديك مجموعة بيانات غير متوازنة حيث 1 بالمائة فقط من الحالات لها القيمة المستهدفة أ (فئة الأقلية)، و99 بالمائة من الحالات لها القيمة ب. لزيادة النسبة المئوية لمشكلات الأقليات إلى ضعف النسبة المئوية السابقة، عليك إدخال 200 في SMOTE percentage في خصائص المكون.

أمثلة

نوصي بمحاولة استخدام SMOTE مع مجموعة بيانات صغيرة لمعرفة كيفية عملها. يستخدم المثال التالي مجموعة بيانات التبرع بالدم المتوفرة في مصمم التعلم الآلي من Microsoft Azure.

إذا أضفت مجموعة البيانات إلى أحد خطوط التدفق وحدد Visualize في إخراج مجموعة البيانات، يمكنك أن ترى أنه من بين 748 صفاً أو حالة في مجموعة البيانات، 570 حالة (76 بالمائة) من الفئة 0 و178 حالة (24 بالمائة) من الفئة 1. رغم أن هذه النتيجة ليست غير متوازنة بشكل رهيب، فإن الفئة 1 تمثل الأشخاص الذين تبرعوا بالدم، لذلك تحتوي هذه الصفوف على مساحة الميزة التي تريد تصميمها.

لزيادة عدد الحالات، يمكنك تعيين قيمة SMOTE percentage، باستخدام مضاعفات 100 على النحو التالي:

فئة 0 فئة 1 الإجمالي
مجموعة البيانات الأصلية

(تعادل نسبة SMOTE = 0)
570

76%
178

24%
748
SMOTE percentage = 100 570

62%
356

38%
926
SMOTE percentage = 200 570

52%
534

48%
1,104
SMOTE percentage = 300 570

44%
712

56%
1,282

تحذير

زيادة عدد الحالات باستخدام SMOTE ليس مضموناً لإنتاج نماذج أكثر دقة. جرب التسلسل بنسب مختلفة ومجموعات ميزات مختلفة وأعداد مختلفة من أقرب الجيران لترى كيف تؤثر إضافة الحالات على نموذجك.

كيفية تكوين SMOTE

  1. أضف مكون SMOTE إلى خط التدفق الخاص بك. يمكنك العثور على المكون ضمن Data Transformation components، في فئة Manipulation.

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

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

  3. تأكد من تحديد العمود الذي يحتوي على التسمية أو الفئة المستهدفة. تقبل SMOTE الملصقات الثنائية فقط.

  4. يحدد مكون SMOTE تلقائياً فئة الأقلية في عمود التسمية، ثم يحصل على جميع الأمثلة لفئة الأقلية. لا يمكن أن تحتوي جميع الأعمدة على قيم NaN.

  5. في خيار SMOTE percentage، أدخل عدداً صحيحاً يشير إلى النسبة المئوية المستهدفة لحالات الأقليات في مجموعة بيانات الإخراج. على سبيل المثال:

    • أدخل 0. يُرجع مكون SMOTE مجموعة البيانات نفسها التي قدمتها كمدخلات بالضبط. لا يضيف أي مشكلات أقليات جديدة. في مجموعة البيانات هذه، لم تتغير نسبة الفئة.

    • أدخل 100. يُنشئ مكوِّن SMOTE مشكلات أقليات جديدة. يضيف نفس عدد مشكلات الأقليات التي كانت موجودة في مجموعة البيانات الأصلية. نظراً لأن SMOTE لا يزيد من عدد حالات الأغلبية، فقد تغيرت نسبة الحالات لكل فئة.

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

    ملاحظة

    استخدم فقط مضاعفات 100 لنسبة SMOTE.

  6. استخدم خيار عدد أقرب الجيران لتحديد حجم مساحة الميزة التي تستخدمها خوارزمية SMOTE في إنشاء حالات جديدة. أقرب جار هو صف من البيانات (حالة) مشابه للحالة المستهدفة. يتم قياس المسافة بين أي حالتين من خلال الجمع بين المتجهات الموزونة لجميع الميزات.

    • من خلال زيادة عدد أقرب الجيران، تحصل على ميزات من المزيد من الحالات.
    • بالحفاظ على عدد أقرب الجيران منخفضاً، فإنك تستخدم ميزات تشبه إلى حد كبير تلك الموجودة في العينة الأصلية.
  7. أدخل قيمة في المربع Random seed إذا كنت تريد ضمان نفس النتائج على عمليات التشغيل لنفس خط التدفق، بنفس البيانات. بخلاف ذلك، يُنشئ المكون بذرة عشوائية استناداً إلى قيم ساعة المعالج عند توزيع خط التدفق. يمكن أن يؤدي توليد بذرة عشوائية إلى نتائج مختلفة قليلاً على المدى.

  8. إرسال المسار.

    ناتج المكون عبارة عن مجموعة بيانات تحتوي على الصفوف الأصلية بالإضافة إلى عدد من الصفوف المضافة مع حالات الأقليات.

ملاحظات فنية

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

  • يمكنك غالباً الحصول على نتائج أفضل إذا قمت بتنظيف القيم المفقودة أو قمت بتطبيق تحويلات أخرى لإصلاح البيانات قبل تطبيق SMOTE.

  • قام بعض الباحثين بالتحقيق فيما إذا كان SMOTE فعالاً في البيانات عالية الأبعاد أو المتفرقة، مثل البيانات المستخدمة في تصنيف النص أو مجموعات بيانات الجينوم. يحتوي هذا البحث على ملخص جيد للتأثيرات والصلاحية النظرية لتطبيق SMOTE في مثل هذه الحالات: Blagus and Lusa: SMOTE للبيانات عالية الأبعاد غير المتوازنة للفئة.

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

    • طرق الاستغناء عن مشكلات الأقليات أو نقص عينات حالات الأغلبية.
    • تقنيات المجموعات التي تساعد المتعلم مباشرة باستخدام التجميع أو التعبئة أو التعزيز التكيفي.

الخطوات التالية

راجع مجموعة المكونات المتوفرة للتعلم الآلي من Azure.