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

رگرسیون محلی

تابع loess(x, y, x0, span) برای هر نقطه‌ی هدف tt در x0، رگرسیون خطی محلی را اجرا می‌کند و f^(t)\hat f(t) را برمی‌گرداند:

  1. k=⌈span⋅n⌉k = \lceil \text{span} \cdot n \rceil (int(np.ceil(span * n))): تعداد همسایه‌ها.
  2. فاصله‌ها di=∣xi−t∣d_i = |x_i - t|؛ kk نمونه‌ی نزدیک‌تر را بردارید (np.argsort(d)[:k]) و dmax⁡d_{\max} را بزرگ‌ترین فاصله در میان آن‌ها بگیرید.
  3. وزن سه‌مکعبی: برای این kk نمونه wi=(1−(di/dmax⁡)3)3w_i = \big(1 - (d_i/d_{\max})^3\big)^3 و برای بقیه صفر. (دورترین همسایه وزن صفر می‌گیرد.)
  4. رگرسیون کمترین مربعات وزن‌دار yy روی 11 و xx: کمینه کردن ∑iwi(yi−β0−β1xi)2\sum_i w_i(y_i - \beta_0 - \beta_1x_i)^2، که جوابش β^=(A⊤WA)−1A⊤Wy\hat\beta = (A^\top W A)^{-1}A^\top W y است.
  5. f^(t)=β^0+β^1t\hat f(t) = \hat\beta_0 + \hat\beta_1 t.

در آزمون‌ها فاصله‌ها تساوی ندارند.

نمونه‌ها

ورودی نمونه ۱
[[0.15, 0.27, 0.6, 1.1, 1.38, 1.67, 1.82, 1.96, 2.51, 2.55, 2.96], [0.99, 0.86, 1.59, 1.0, 0.52, -0.21, -0.28, -0.22, -0.14, -0.55, 0.78], [1.0, 2.0], 0.5]
خروجی نمونه ۱
[1.0529, -0.2398]
ورودی نمونه ۲
[[0.19, 0.34, 0.39, 0.61, 0.65, 0.9, 1.05, 1.17, 1.25, 1.36, 1.41, 1.62, 1.87, 1.92, 1.96, 2.05, 2.08, 2.15, 2.23, 2.56], [0.34, 0.81, 0.73, 1.02, 0.97, 1.27, 0.77, 1.09, 1.37, 0.59, 0.73, 1.23, -0.3, -0.55, -0.24, 0.34, 0.38, -0.64, -0.13, -0.15], [0.5, 1.5, 2.5], 0.3]
خروجی نمونه ۲
[0.8738, 0.9711, -0.1699]

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

ورود