راه
۵ کیو· متوسط رو به بالامتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

کمینه کردن زیان لولا با زیرگرادیان

طبقه‌بند بردار پشتیبان خطی را می‌شود به شکل «زیان + جریمه» نوشت. با yi∈{−1,+1}y_i \in \{-1, +1\}:

L(β0,β)=1n∑i=1nmax⁡(0,  1−yi(β0+xi⊤β))+λ∥β∥2L(\beta_0, \beta) = \frac{1}{n}\sum_{i=1}^{n}\max\big(0,\; 1 - y_i(\beta_0 + x_i^\top\beta)\big) + \lambda\lVert\beta\rVert^2

تابع hinge_fit(X, y, lam, steps, lr) این را با کاهش زیرگرادیان کمینه می‌کند. دقیقاً به این ترتیب:

  1. β0=0\beta_0 = 0 و β=0\beta = 0.
  2. steps بار:
    • mi=yi(β0+xi⊤β)m_i = y_i(\beta_0 + x_i^\top\beta)، و مجموعه‌ی نمونه‌هایی که mi<1m_i < 1 (در حاشیه یا سمت اشتباه).
    • زیرگرادیان: gβ=−1n∑mi<1yixi+2λβg_\beta = -\frac{1}{n}\sum_{m_i < 1}y_ix_i + 2\lambda\beta و g0=−1n∑mi<1yig_0 = -\frac{1}{n}\sum_{m_i < 1}y_i.
    • β←β−lr⋅gβ\beta \leftarrow \beta - \text{lr}\cdot g_\beta و β0←β0−lr⋅g0\beta_0 \leftarrow \beta_0 - \text{lr}\cdot g_0 — هر دو با گرادیان‌های همین گام.
  3. خروجی [beta0, beta_1, ..., beta_p].

نمونه‌ها

ورودی نمونه ۱
[[[-3.28, 0.58], [1.2, 3.36], [-0.42, -0.56], [-1.91, 0.56], [-1.76, 0.74], [-1.65, -0.65], [-2.77, 1.51], [-1.34, -1.22], [2.06, -0.06], [2.02, -0.34]], [-1, 1, -1, -1, -1, -1, -1, -1, 1, 1], 0.1, 1, 0.1]
خروجی نمونه ۱
[-0.04, 0.1841, 0.02]
ورودی نمونه ۲
[[[-3.28, 0.58], [1.2, 3.36], [-0.42, -0.56], [-1.91, 0.56], [-1.76, 0.74], [-1.65, -0.65], [-2.77, 1.51], [-1.34, -1.22], [2.06, -0.06], [2.02, -0.34]], [-1, 1, -1, -1, -1, -1, -1, -1, 1, 1], 0.1, 200, 0.1]
خروجی نمونه ۲
[-0.55, 0.7933, 0.207]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود