LinearSVC وSVC بنواة خطية يبنيان مصنفين خطيين، لكنهما ليسا نسختين متطابقتين. يختلف التنفيذ والخسارة الافتراضية والتعامل مع تنظيم الإزاحة. [1]
الخلاصة السريعة
حدد شكل الحد والخسارة والتنفيذ قبل المقارنة؛ تشابه الاسم أو اختيار linear لا يضمن أوزانًا أو درجات متساوية. [1]
- يستعمل LinearSVC مكتبة liblinear، بينما يستعمل SVC مكتبة libsvm. [1] [2]
- خسارة squared_hinge الافتراضية في LinearSVC تختلف عن hinge في SVC؛ المثال يقارن قيم الخسارة، لا نماذج مدربة. [1]
- في مثال الزوايا الأربع، لا يوجد حد خطي يصنفها كلها بفصل صارم؛ تغيير التنفيذ وحده لا يغير هذه الهندسة.
- راجع الحجم والخسارة وتنظيم الإزاحة وجودة المهمة؛ يذكر التوثيق اختلاف قابلية التوسع، لكنه لا يعطي زمنًا مقاسًا لملفك. [1] [2]
ما الذي يتغير وراء اسم المصنف؟
يوثق LinearSVC تنفيذه بـliblinear مقابل libsvm لـSVC، مع اختلاف الخسارة الافتراضية وتنظيم الإزاحة. [1]
لذلك لا تجعل تجربة «SVC مع linear» مقابل «LinearSVC بالإعدادات الافتراضية» اختبارًا لتأثير اسم المكتبة فقط. اكتب الهدف والإزاحة والخسارة والإعدادات، ثم حدد أي الفرقين تحاول فهمه.
كلمة خطي تصف شكل الدرجة في الخصائص التي استعملتها. لا تقول إن تنفيذين خطيين يقللان الهدف نفسه أو يجدان معاملات متطابقة. وقد تكون المقارنة العملية مفيدة رغم هذا الاختلاف، إذا وصفت ما قارنته بدقة.
مثال: ماذا يفعل تربيع خسارة الهامش؟
يتيح LinearSVC خسارتي hinge وsquared_hinge، وتكون الثانية افتراضية؛ الأولى هي خسارة SVC المعتادة. [1]
نختار خسارتي مفصلة مفترضتين 0.5 و 2 لحالتين. مجموعهما 2.5، بينما مجموع مربعيهما 0.25+4=4.25. الحالة ذات الخسارة 2 تحصل على وزن عددي أكبر نسبيًا بعد التربيع.
هذا حساب لتقييم خسارة عند درجات مفترضة، وليس تدريب مصنفين أو مجموع هدفيهما الكاملين. لم نضف عقوبة المعاملات أو تنظيم الإزاحة. فلا ننسب فرق 1.75 إلى خطأ اختبار أو إلى سرعة تنفيذ.
هل يستطيع تبديل التنفيذ حل شكل غير خطي؟
نفترض الفئة أ عند (−1،−1) و(1، 1)، والفئة ب عند (−1، 1) و(1،−1). نريد درجة خطية س×w1+ص×w2+b، موجبة لأ وسالبة لب بصورة صارمة.
جمع درجتي أ يلغي جزأي w ويعطي 2b؛ لكي تكونا موجبتين نحتاج b>0. وجمع درجتي ب يعطي 2b أيضًا؛ لكي تكونا سالبتين نحتاج b<0. لا يمكن تحقق الشرطين معًا، لذلك لا يوجد هذا الفصل الخطي الصارم.
قد يتيح تمثيل آخر أو نواة غير خطية حدودًا مختلفة، لكننا لم ندربها على النقاط. البرهان لا يثبت فشل كل LinearSVC في كل مهمة، ولا يقدم دقة لنواة RBF أو يعد بحلها مع أي إعداد.
ما الذي نراقبه في مقارنة عملية؟
يشير التوثيق إلى قابلية LinearSVC أفضل للتوسع مع عينات كثيرة، وإلى كلفة ملاءمة SVC التي تنمو تربيعيًا على الأقل مع عدد العينات. [1] [2]
قبل تنفيذ مقارنة، احتفظ بحجم المدخل وعدد الخصائص والإعدادات وقاعدة التوقف. وسجل زمنًا فعليًا إذا كان الزمن معيارك؛ لم نستخرج عدد ثوان من وصف التعقيد أو نضع حدًا ثابتًا لكل جهاز.
راجع التنبؤات على المهمة المطلوبة كذلك. المصنف الأقل كلفة قد يكون مفيدًا، لكن تشابه فئتين في مثال واحد لا يثبت تكافؤ الدرجة أو الهدف. المقال يوضح كيف تصف المقارنة قبل أن تحول اختلاف الإعدادات إلى نتيجة منسوبة للتنفيذ وحده.
المصادر ومتابعة القراءة
- scikit-learn: LinearSVC (يفتح في نافذة جديدة)scikit-learn.org
- scikit-learn: SVC (يفتح في نافذة جديدة)scikit-learn.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
