One-vs-One Multiclass

توضح هذه المقالة كيفية استخدام المكون One-vs-One Multiclass في مصمم التعلم الآلي من Azure. يتمثل الهدف في إنشاء نموذج تصنيف يمكنه توقع فئات متعددة، باستخدام نهج واحد مقابل واحد.

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

المزيد حول نماذج واحد مقابل واحد

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

ينفذ هذا المكون أسلوب واحد مقابل واحد، حيث يتم إنشاء نموذج ثنائي لكل زوج فئة. في وقت التوقع، يتم تحديد الفئة التي حصلت على أكبر عدد من الأصوات. نظرًا لأنه يتطلب احتواء مصنفات n_classes * (n_classes - 1) / 2، عادة ما يكون هذا الأسلوب أبطأ من واحد مقابل الكل، بسبب تعقيد O(n_classes^2) الخاص به. مع ذلك، قد يكون هذا الأسلوب مفيدًا لخوارزميات مثل خوارزميات kernel التي لا تتوسع بشكل جيد مع n_samples. وذلك لأن كل مشكلة تعلم فردية لا تشتمل إلا على مجموعة فرعية صغيرة من البيانات بينما، مع واحد مقابل الكل، يتم استخدام مجموعة البيانات الكاملة n_classes مرات.

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

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

يستخدم المكون OneVsOneClassifier من sklearn، ويمكنك معرفة المزيد من التفاصيل هنا.

كيفية تكوين مصنف One-vs-One Multiclass

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

يمكنك توصيل النموذج الثنائي بمكون One-vs-One Multiclass. ثم تقوم بتدريب مجموعة النماذج باستخدام نموذج التدريب مع مجموعة بيانات تدريب مسماة.

عند دمج النماذج، ينشئ One-vs-One Multiclass نماذج تصنيف ثنائية متعددة، ويحسن الخوارزمية لكل فئة، ثم يدمج النماذج. يقوم المكون بهذه المهام على الرغم من أن مجموعة بيانات التدريب قد تحتوي على قيم فئات متعددة.

  1. أضف مكون One-vs-One Multiclass إلى تدفقاتك في المصمم. يمكنك العثور على هذا المكون ضمن التعلم الآلي - التهيئة، في فئة التصنيف.

    لا يحتوي مصنف One-vs-One Multiclass على معلمات قابلة للتكوين خاصة به. يجب إجراء أي تخصيصات في نموذج التصنيف الثنائي الذي يتم توفيره كإدخال.

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

  3. أضف مكون نموذج التدريب إلى تدفقاتك. قم بتوصيل المصنف غير المدرب الذي هو إخراج One-vs-One Multiclass.

  4. في الإدخال الآخر من نموذج التدريب، قم بتوصيل مجموعة بيانات تدريب مسماة تحتوي على قيم فئات متعددة.

  5. إرسال المسار.

النتائج

بعد اكتمال التدريب، يمكنك استخدام النموذج لإجراء توقعات متعددة الفئات.

بدلاً من ذلك، يمكنك تمرير المصنف غير المدرب إلى نموذج التحقق التبادلي للتحقق التبادلي مقابل مجموعة بيانات التحقق المسماة.

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

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