تقنية

Elastic Net: الجمع بين تقليص المعاملات واختيارها

قيمتان للمعاملات تعطيان مقدارين للتنظيم وجزأي كلفة مجموعهما 1.05
نسبة المزج تحدد أوزان الحدين قبل حساب مقدار كل حد.

Elastic Net انحدار خطي يجمع تنظيم L1 وL2. يتيح تغيير قوة العقوبة ونسبة المزج بمعلمتين مختلفتين في scikit-learn. [1]

الخلاصة السريعة

يجمع Elastic Net عقوبتي القيم المطلقة ومربعات المعاملات؛ alpha تضبط القوة وl1_ratio تضبط المزج، وليس نسبة الدقة أو عدد الخصائص المحذوفة. [1]

  • في صيغة التنفيذ، كلفة التنظيم هي alpha×r×||w||1+0.5×alpha×(1−r)×||w||²2، حيث r=l1_ratio. [1]
  • للمعاملين المفترضين 2 و−1: مجموع القيم المطلقة 3، ومجموع المربعات 5؛ عند alpha=0.4 وr=0.25 تكون العقوبة 1.05.
  • مع تثبيت المعاملين، رفع r إلى 0.75 يعطي 1.15؛ نسبة المزج لا تساوي نسبة مساهمة الكلفة، وقد يتغير المعاملان عند تدريب جديد.
  • يسمح المزج بحلول ذات معاملات صفرية؛ لا يحدد عددها مسبقًا. وr=1 تعطي عقوبة Lasso في هذه الصيغة. [1] [2]

معلمتان لسؤالين مختلفين

تعرض الصيغة في التوثيق خطأ ملاءمة مقسومًا على 2n، ثم alpha×r×||w||1، ثم نصف alpha×(1−r)×||w||²2. [1]

إذا كتبت alpha وحدها في تقرير، لم تصف وزن الحدين بالكامل. نحتاج إلى r أيضًا. سنحسب جزئي التنظيم فقط لمعاملين ثابتين، كي نرى أين يدخل كل رقم؛ لا ندعي هنا أننا وجدنا المعاملين اللذين يقللان الهدف كله أو اختبرنا نموذجًا مدربًا.

حساب جزئي العقوبة عند r=0.25

اخترنا w=(2،−1)، ومنه ||w||1=|2|+|−1|=3، و||w||²2=2²+(−1)²=5. هذه معاملات مصطنعة، ولا تمثل صفين من بيانات التدريب. نختار alpha=0.4 وr=0.25.

جزء L1 يساوي 0.4×0.25×3=0.3. وجزء L2 يساوي 0.5×0.4×0.75×5=0.75. إذن عقوبة التنظيم 0.3+0.75=1.05. لاحظ عامل النصف؛ حذفُه يجعل الجزء الثاني 1.5 ويغير الهدف الذي نقارنه.

لم نحسب متبقيات لأننا لم نختر X وy. لذلك لا نسمي 1.05 خسارة التنبؤ، ولا ندعي أن نموذجًا بعقوبة أصغر في هذا الحساب أدق على بيانات جديدة. إنه مقدار جزأين من هدف بعينه عند زوج معاملات بعينه.

لماذا لا تمثل r نسبة الكلفة النهائية؟

لنثبت المعاملين وalpha ونغير r إلى 0.75. يصبح جزء L1 هو 0.4×0.75×3=0.9، وجزء L2 هو 0.5×0.4×0.25×5=0.25. المجموع 1.15، ومساهمة L1 منه نحو 78.3%، لا 75%.

السبب حسابي: نسبتا المزج تضربان مقدارين مختلفين هما 3 ونصف 5. لذلك العبارة «75% من العقوبة L1» ليست قراءة دقيقة لهذه الأرقام. كما أن هذا الحساب أبقى w ثابتًا؛ في تدريب جديد قد يتغير w نفسه، فلا تنقل فرق 0.1 تلقائيًا إلى حلول نموذجين فعليين.

هل نعرف مسبقًا المعاملات التي ستختفي؟

يوضح الدليل أن المزج يتيح تعلم معاملات متفرقة، ويذكر توثيق التنفيذ أن r=1 تعطي عقوبة Lasso. [1] [2]

لكن لا توجد في صيغة المثال قائمة أسماء للخصائص التي ستصبح أوزانها صفرًا. ولا تعني r=0.75 أن ثلاثة أرباع الخصائص ستختفي. معرفة الاختيار الفعلي تتطلب حل المسألة ببياناتها وإعداداتها، ثم قراءة المعاملات والنتائج.

عند توثيق التجربة، سجل alpha وl1_ratio والصيغة المستعملة، ثم اشرح ما بقي وما صار صفرًا ولماذا يخدم هدفك. يختلف معنى أسماء المعلمات بين البرامج؛ اقرأ تعريفها قبل نقل قيمها. ويبقى مثالنا حساب كلفة، وليس توصية بنسبة مزج تصلح لجميع المهام.

المصادر ومتابعة القراءة

  1. scikit-learn: ElasticNet (يفتح في نافذة جديدة)scikit-learn.org
  2. scikit-learn: Linear Models، Elastic-Net (يفتح في نافذة جديدة)scikit-learn.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.