الگوریتم KNN (نزدیک‌ترین همسایه‌ها)

آموزش الگوریتم KNN: فاصله اقلیدسی، انتخاب K، رأی‌گیری همسایه‌ها و مزایا/معایب

KNN چیست؟

K-Nearest Neighbors (KNN) ساده‌ترین و شهودی‌ترین دسته‌بند: نمونه جدید را به کلاس اکثریت K همسایه نزدیکش نسبت می‌دهد.

مثل اینکه به محلله جدید بگویی: «همسایه‌هایت بیشتر معلم‌اند، پس احتمالاً تو هم معلمی!»

چگونه کار می‌کند؟

  1. فاصله نمونه جدید تا همه نمونه‌های آموزش محاسبه می‌شود
  2. K نمونه نزدیک‌تر انتخاب می‌شوند
  3. کلاس اکثریت بین آن‌ها، پیش‌بینی ماست

فاصله اقلیدسی

معروف‌ترین فاصله در KNN:

d = √((x₁-y₁)² + (x₂-y₂)² + ...)

فاصله‌های دیگر: منهتن (مجموع قدرمطلق)، مینکوفسکی، کسینوسی (برای متن).

انتخاب K

بهترین K را با اعتبارسنجی متقابل پیدا کنید.

پیاده‌سازی

from sklearn.neighbors import KNeighborsClassifier

model = KNeighborsClassifier(n_neighbors=5)
model.fit(X_train, y_train)
preds = model.predict(X_test)

نکته مهم: مقیاس‌بندی!

KNN با فاصله کار می‌کند؛ اگر ویژگی‌ها هم‌مقیاس نباشند، ویژگی با اعداد بزرگ همه‌چیز را تعیین می‌کند. همیشه قبل از KNN مقیاس‌بندی کنید!

مزایا و معایب

مزایامعایب
ساده و شهودیکند در پیش‌بینی (همه فاصله‌ها!)
بدون فرض درباره دادهحساس به مقیاس و ابعاد
برای داده کوچک خوبحساس به داده نامتوازن

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط