الانحدار الخطي واللوجستي
“إيجاد أفضل خط في سحابة من البيانات المتشعثة”
غوص بصري عميق من MCO إلى الانحدار التدرجي وR² والبواقي والتعددية الخطية، ثم اللوجستي: sigmoid وخسارة log وتنظيم L1/L2 وحدود القرار.
المتطلبات الأساسية
المفاهيم المغطاة
∑الصيغ الرئيسية
حل MCO
الحل بصيغة مغلقة الذي يُقلل البواقي المربعة — يُطبَّق عندما تكون XᵀX قابلة للعكس
خسارة MSE
متوسط الخطأ التربيعي — الهدف المُقلَّل؛ يعاقب البواقي الكبيرة تربيعياً
تحديث التدرج
قاعدة تحديث الانحدار التدرجي — α هو معدل التعلم الذي يتحكم في حجم الخطوة
السيغمويد
تضغط أي رقم حقيقي إلى (0,1) للتفسير الاحتمالي في الانحدار اللوجستي
▶محاكاة تفاعلية
⬡هندسة النموذج
لماذا يهم هذا؟
الانحدار هو أساس كل نظام تنبؤ. درجة الائتمان، توقعات الطقس، تقدير سعر المنزل، محرك التوصية — كلها تبدأ هنا. قبل الشبكات العصبية، قبل المجموعات، كانت الخط. فهم الانحدار بعمق يعني فهم ما يعنيه 'التعلم' رياضياً.
فاز الانحدار الخطي بجائزة نوبل (الاقتصاد، 1978). يسبق الحواسيب بـ200 عام — استخدمه غاوس للتنبؤ بمدارات الكواكب.
الحدس الهندسي
تخيل رمي السهام على حائط. كل سهم يهبط في موضع (x, y). تريد إيجاد الخط الذي يمر بأقرب ما يمكن من جميع السهام في آنٍ واحد. 'الأقرب' يعني تقليل المسافات الرأسية (البواقي) من كل سهم إلى خطك. البواقي المربعة تحول هذا إلى منظر على شكل وعاء — وقاع الوعاء هو حل المربعات الصغرى.
رياضيات المربعات الصغرى
نصمم العلاقة كـ ŷ = Xβ + ε حيث ε ~ N(0, σ²). تقليل مجموع البواقي المربعة له حل جميل بصيغة مغلقة يسمى المعادلة الطبيعية. يعمل هذا لأن سطح الخسارة مكافئ مكافئ — وعاء مثالي بحد أدنى واحد بالضبط.
لماذا تعظيم الاحتمالية = تصغير الأخطاء المربعة
هذا الترابط عميق. إذا افترضنا ضوضاء غاوسية ε ~ N(0, σ²)، فاحتمال مشاهدة y بمعلومية x يتناسب مع exp(-(y - Xβ)²/2σ²). أخذ اللوغاريتم والنفي يعطينا بالضبط مجموع البواقي المربعة. MCO وMLE نفس الشيء تحت الضوضاء الغاوسية.
افتراض الضوضاء الغاوسية هو سبب تأثير القيم الشاذة بشدة — الأخطاء المربعة تعاقب البواقي الكبيرة تربيعياً. استخدم خسارة هوبر للمتانة.
الانحدار التدرجي: التعلم خطوة بخطوة
عندما لا تكون XᵀX قابلة للعكس (التعددية الخطية) أو كان مجموعة البيانات كبيرة جداً للمعادلة الطبيعية، نستخدم الانحدار التدرجي. ابدأ في أي مكان على سطح الخسارة، قس الميل، اخطُ خطوة صغيرة للأسفل. كرر حتى التقارب.
تهيئة الأوزان β = 0 (أو قيم عشوائية صغيرة)
حساب التنبؤ: ŷ = Xβ
حساب البواقي: ε = y - ŷ
حساب التدرج: ∇L = -(2/n) Xᵀε
التحديث: β ← β - α · ∇L
التكرار حتى ||∇L|| < التسامح
الانحدار اللوجستي: القفزة الثنائية
للنتائج الثنائية نحتاج مخرجات في النطاق (0,1). نمرر التركيبة الخطية عبر دالة السيغمويد σ(z) = 1/(1+e⁻ᶻ) التي تضع ℝ → (0,1). تتغير دالة الخسارة من MSE إلى الإنتروبيا التقاطعية الثنائية (خسارة اللوغاريتم).
من الصفر مع NumPy
The full gradient descent implementation in 12 lines:
import numpy as np from sklearn.datasets import make_regression class="tok-comment"># ── Sample data ──────────────────────────────────────────────────────── X_raw, y = make_regression(n_samples=class="tok-num">200, n_features=class="tok-num">5, noise=class="tok-num">10, random_state=class="tok-num">42) X = np.c_[np.ones(len(X_raw)), X_raw] class="tok-comment"># prepend bias column lam = class="tok-num">0.1 class="tok-comment"># Ridge regularisation strength class LinearRegression: def __init__(self, lr=class="tok-num">0.01, n_iter=class="tok-num">1000): self.lr, self.n_iter = lr, n_iter def fit(self, X, y): n, p = X.shape self.beta = np.zeros(p) for _ in range(self.n_iter): y_hat = X @ self.beta residuals = y - y_hat grad = -(class="tok-num">2/n) * X.T @ residuals self.beta -= self.lr * grad return self def predict(self, X): return X @ self.beta class="tok-comment"># Demo model = LinearRegression(lr=class="tok-num">0.01, n_iter=class="tok-num">1000).fit(X, y) print(class="tok-str">"GD beta:", model.beta[:class="tok-num">3].round(class="tok-num">2)) class="tok-comment"># Closed-form (Normal Equation): beta_ols = np.linalg.solve(X.T @ X, X.T @ y) class="tok-comment"># Ridge (L2 regularization): p = X.shape[class="tok-num">1] beta_ridge = np.linalg.solve(X.T @ X + lam * np.eye(p), X.T @ y) print(class="tok-str">"OLS beta: ", beta_ols[:class="tok-num">3].round(class="tok-num">2)) print(class="tok-str">"Ridge beta:", beta_ridge[:class="tok-num">3].round(class="tok-num">2))
المزالق الحرجة
أربعة أخطاء تُدمّر نماذج الانحدار في الإنتاج:
التعددية الخطية — الميزات المرتبطة تجعل (XᵀX) شبه منفردة. VIF > 10 إنذار. الحل: تنظيم Ridge أو ACP.
الميزات غير الموسّعة — الانحدار التدرجي يتقارب أبطأ 100× إذا كانت الميزات بمقاييس مختلفة. طبّق دائماً StandardScaler أولاً.
عدم تجانس التباين — تباين البواقي غير ثابت. تخيّل البواقي مقابل القيم المجهّزة.
الاستقراء — النماذج الخطية واثقة بشكل خطير خارج نطاق التدريب. لا تستقرئ أبداً بدون معرفة النطاق.
?اختبار المعرفة
يتم حفظ التقدم في متصفحك — لا حاجة لحساب.