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

رگرسیون KNN از صفر

تابع knn_regress(X_train, y_train, X_test, k) را بدون scikit-learn بنویسید. برای هر سطر X_test، میانگین y_train در KK نزدیک‌ترین نمونه‌ی آموزش (با فاصله‌ی اقلیدسی) را پیش‌بینی کنید:

f^(x0)=1K∑xi∈N0yi\hat{f}(x_0) = \frac{1}{K} \sum_{x_i \in \mathcal{N}_0} y_i

اگر چند نمونه‌ی آموزش فاصله‌ی برابر داشتند، آن که در X_train زودتر آمده جلوتر است (np.argsort(..., kind="stable")).

python
knn_regress(np.array([[1], [2], [3], [10]]), np.array([1, 2, 3, 10]), np.array([[2.2], [9]]), 2)
# → [2.5, 6.5]

نمونه‌ها

ورودی نمونه ۱
[[[1], [2], [3], [10]], [1, 2, 3, 10], [[2.2], [9]], 2]
خروجی نمونه ۱
[2.5, 6.5]
ورودی نمونه ۲
[[[0, 0], [1, 0], [0, 1], [5, 5]], [1.0, 2.0, 3.0, 9.0], [[0.1, 0.1], [4, 4]], 3]
خروجی نمونه ۲
[2.0, 4.6667]

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

ورود