قراية
وضع الحكايات

الـ logistic regression (الانحدار اللوجستي)

~14 دقيقة قراية الدرس 2 في الوحدة 2

من الـ regression للـ classification

الـ linear regression (الانحدار الخطي) بيتنبأ برقم مستمر — سعر، درجة حرارة، درجة. بس مسائل حقيقية كتير بتسأل سؤال مختلف: أنهي فئة؟ الإيميل ده spam ولا لأ؟ الورم ده حميد ولا خبيث؟ العميل هيسيب الخدمة ولا هيكمّل؟ دي مسائل classification (تصنيف)، ومحتاجة model يطلّع احتمالات، مش أرقام مالهاش حدود.

الـ sigmoid function

الفكرة الأساسية: خد ناتج الـ linear model (اللي بيتراوح من −∞ لـ +∞) واضغطه في النطاق (0، 1) باستخدام الـ sigmoid function (دالة السيجمويد). والنتيجة بتتفسّر على إنها احتمال إن الـ input تبع الفئة 1.

الـ sigmoid function
\sigma(z) = \frac{1}{1 + e^{-z}}
بتحوّل أي رقم حقيقي لـ (0، 1). الـ inputs الموجبة الكبيرة → قريبة من 1. والسالبة الكبيرة → قريبة من 0. وعند z = 0، الناتج 0.5 بالظبط.

الـ logistic regression (الانحدار اللوجستي) ببساطة كده: احسب z = w·x + b (linear combination)، وبعدين طبّق σ(z) عشان تاخد الاحتمال المتوقع.

الـ logistic model
P(y=1|\mathbf{x}) = \sigma(\mathbf{w}^T \mathbf{x} + b)
احتمال إن الـ input x تبع الفئة 1، بدلالة الـ weights w والـ bias b.

الـ decision boundary

عشان نطلّع prediction، بنطبّق threshold: لو P(y=1|x) ≥ 0.5، نتنبأ بالفئة 1؛ غير كده نتنبأ بالفئة 0. ومجموعة النقط اللي عندها σ(z) = 0.5 (يعني z = 0) بتعمل الـ decision boundary (حد القرار) — خط مستقيم (أو hyperplane) في فضاء الـ features بيفصل بين الفئتين.

الـ cross-entropy loss

ليه منستخدمش الـ MSE في الـ classification؟ لأن الـ MSE مع الـ sigmoid بيعمل سطح loss مش محدّب مليان local minima. وبدل كده بنستخدم الـ binary cross-entropy (الإنتروبيا المتقاطعة الثنائية) (واسمها كمان log loss)، وهي محدّبة ومتصممة مخصوص للـ outputs اللي هي احتمالات.

الـ binary cross-entropy
-\frac{1}{n}\sum_{i=1}^{n}\left[y_i \log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i)\right]
لما y=1، بس −log(ŷ) هو اللي يهم. ولما y=0، بس −log(1−ŷ) هو اللي يهم. والـ predictions الغلط اللي واثقة من نفسها بتتعاقب جامد.
ليه الـ cross-entropy بتشتغل

لو الـ label الحقيقي 1 واتنبأت بـ 0.99، الـ loss هي −log(0.99) ≈ 0.01 — صغيرة جدًا. بس لو اتنبأت بـ 0.01 الـ loss هي −log(0.01) ≈ 4.6 — ضخمة. الـ cross-entropy بتدمّر الإجابات الغلط اللي واثقة زيادة، ودي بالظبط اللي عايزينه في الـ classification.

الـ multi-class classification

الـ binary classification بيغطّي فئتين. ولأكتر من فئتين (K > 2)، فيه طريقتين. الـ one-vs-rest (واحد مقابل الباقي) بيدرّب K classifiers ثنائيين منفصلين، كل واحد بيسأل “دي الفئة k ولا لأ؟” والـ softmax regression (انحدار سوفتماكس) أشيك: بيعمّم الـ sigmoid لـ K فئة، ويطلّع توزيع احتمالي على كل الفئات مجموعه 1.

الـ softmax function
P(y=k|\mathbf{x}) = \frac{e^{z_k}}{\sum_{j=1}^{K} e^{z_j}}
بتحوّل K درجات خام (logits) لتوزيع احتمالي. كل فئة بتاخد احتمال؛ ومجموعهم 1.

الـ regularization في الـ classification

الـ logistic regression ممكن يعمل overfitting (الإفراط في التخصيص) هو كمان — خصوصًا مع features كتير أو بيانات بتتفصل خطيًا (الـ weights بتكبر لـ ±∞ وهي بتحاول تفصل الفئات فصل كامل). زوّد عقوبات L1 أو L2 على الـ cross-entropy loss، بالظبط زي الـ linear regression. وأغلب الـ libraries بتستخدم الـ parameter C = 1/λ: قيمة C كبيرة معناها regularization (تنظيم) أقل، وقيمة C صغيرة معناها regularization أكتر.

في الدرس الجاي، هنتعمّق في الـ regularization — L1 وL2 والـ elastic net — ونفهم ليه معاقبة الـ weights الكبيرة من أهم التقنيات في الـ Machine Learning كله.

أهم النقط
  • الـ logistic regression بيطبّق الـ sigmoid function على linear model، فبيحوّل الـ outputs اللي مالهاش حدود لاحتمالات بين 0 و1.
  • الـ decision boundary هو المكان اللي فيه P(y=1|x) = 0.5، وبيعمل hyperplane في فضاء الـ features.
  • الـ cross-entropy loss بتاخد مكان الـ MSE — محدّبة وبتعاقب جامد الـ predictions الغلط اللي واثقة.
  • الـ softmax بيوسّع الـ logistic regression لمسائل الـ multi-class classification، ويطلّع توزيع احتمالي على كل الفئات.
  • الـ regularization (L1/L2) بيمنع الـ overfitting بمعاقبة الـ weights الكبيرة، وبيتحكم فيه الـ parameter C = 1/λ.
الدرس اللي فاتالـ linear regression (الانحدار الخطي) نظرة عامة على الموديول الدرس اللي بعدهالـ regularization (التنظيم)