ML 101
م04 · د03
الوحدة 4

SVM في التطبيق

النظرية نصف القصة فقط. الآن ندرِّب ونضبط ونُقيِّم SVMs حقيقية باستخدام scikit-learn — من البيانات الخام إلى مصنِّف منشور.

1 / 13
ML 101
م04 · د03
الخطوة الأولى

دائمًا وحِّد البيانات

SVMs ليست محايدة تجاه المقياس — المسافات تقود الهامش. وحِّد دائمًا داخل Pipeline لتجنب تسرب البيانات.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
pipe = Pipeline([('sc', StandardScaler()), ('svm', SVC())])
2 / 13
ML 101
م04 · د03
المعاملات الرئيسية

واجهة SVC البرمجية

  • kernel — 'rbf' افتراضيًا، 'linear'، 'poly'
  • C — قوة التنظيم (1.0 افتراضيًا)
  • gamma — عرض نطاق RBF ('scale' افتراضيًا)
  • probability — تفعيل تحجيم Platt (أبطأ)
  • class_weight — 'balanced' للبيانات غير المتوازنة
3 / 13
ML 101
م04 · د03
تقدير موثوق

التحقق المتقاطع

تقسيمة واحدة تعطي تقديرات صاخبة. k-fold CV يحسب المتوسط عبر k طيات محجوزة — كل نقطة بيانات تُختبر مرة واحدة.

درجة CV
\hat{S}_{\text{CV}} = \tfrac{1}{k}\sum_{i=1}^{k} S_i
4 / 13
ML 101
م04 · د03
أفضل الممارسات

الطيات المتطابقة

  • استخدم StratifiedKFold للحفاظ على نسب الفئات
  • اخلط قبل التقسيم (اضبط random_state)
  • 5 أو 10 طيات هو المعيار
  • دِرِّب المعالجة المسبقة داخل كل طية عبر Pipeline
  • أفِد بالمتوسط ± الانحراف المعياري عبر الطيات
5 / 13
ML 101
م04 · د03
ضبط C وγ

البحث الشبكي

C وγ يتفاعلان — اضبطهما معًا، ليس بشكل مستقل. ابحث على مقياس لوغاريتمي: {0.01، 0.1، 1، 10، 100}.

نطاق C
10⁻² → 10²
نطاق γ
10⁻⁴ → 10¹
6 / 13
ML 101
م04 · د03
تأثيرات المعاملات الفائقة

مقايضات C وγ

  • C كبير — هامش صغير، أخطاء قليلة مسموحة ← خطر إفراط التخصيص
  • C صغير — هامش واسع، مزيد من الأخطاء ← خطر نقص التخصيص
  • γ كبير — جرس RBF ضيق → حد متعرج
  • γ صغير — جرس RBF واسع → حد سلس
  • C كبير + γ كبير = إفراط التخصيص
7 / 13
ML 101
م04 · د03
ما وراء الدقة

مقاييس التقييم

  • الإحكام — من الإيجابيات المتنبَّأ بها، كم منها صحيح؟
  • الاستدعاء — من الإيجابيات الفعلية، كم اصطدناها؟
  • F1 — الوسط التوافقي للإحكام والاستدعاء
  • مصفوفة الالتباس — تفصيل كامل لـ TP/FP/TN/FN
  • الدقة تُضلِّل على الفئات غير المتوازنة
8 / 13
ML 101
م04 · د03
مخرجات الاحتمالية

تحجيم Platt

اضبط probability=True للحصول على احتمالات مُعايَرة. يُدرِّب تحجيم Platt سينمويدًا لوجستيًا فوق درجات قرار SVM.

Platt
P(y{=}1\mid f) = \sigma(Af+B) = \dfrac{1}{1+e^{-(Af+B)}}
9 / 13
ML 101
م04 · د03
أنواع SVM

ما بعد الثنائي

  • متعدد الفئات — SVM ثنائي؛ يُلائم SVC واحد-ضد-واحد، K(K−1)/2 نموذجًا، تصويت الأغلبية
  • واحد-ضد-البقية — افتراضي LinearSVC: K نماذج، واحد لكل فئة، يفوز الأعلى درجةً
  • SVR — انحدار عبر أنبوب غير حسّاس بعرض ε؛ الأخطاء ضمن ±ε لا تكلّف شيئًا
  • متجهات الدعم = النقاط على الأنبوب أو خارجه؛ نفس النوى وC كما في SVC
  • LinearSVC يتوسع للملايين (LIBLINEAR، O(n)) — النصوص، علم الأحياء، البيانات المتفرقة
10 / 13
ML 101
م04 · د03
أخطاء شائعة

المزالق العملية

  • التوحيد خارج Pipeline → تسرب البيانات
  • البحث الخطي عن C وγ → تفويت الأمثل
  • تجاهل تحذيرات التقارب ← نموذج غير صالح
  • استخدام الدقة على بيانات غير متوازنة ← مُضلِّل
  • ضبط C وγ بشكل مستقل → دون المستوى الأمثل
  • نسيان class_weight على الفئات غير المتوازنة
11 / 13
ML 101
اختبار سريع

تحقّق ممّا ثبت

أربعة أسئلة من هذا الدرس. أجب لترى السبب — يظهر الشرح سواء أصبتَ أم أخطأت. ولا شيء يُسجَّل أو يُحفَظ.

السؤال 1 من 0
النتيجة 0/0

12 / 13
ML 101
ملخص
مراجعة

ما تعلمته

وحِّد الميزات داخل Pipeline. اضبط C وγ معًا عبر بحث شبكي لوغاريتمي. استخدم StratifiedKFold. قيِّم بـ F1 ومصفوفة الالتباس. للبيانات الكبيرة، استخدم LinearSVC. الوحدة 4 مكتملة!

الوحدة 4 منتهية
SVMs: النظرية والتطبيق ←
13 / 13