📚 সমস্ত অধ্যায় দেখুন
অধ্যায়/ফেজ 2 · Phase 2 · Algorithms
2.3১৫ মিনিট পড়া13 / 68

K-Nearest Neighbors — প্রতিবেশী দিয়ে প্রেডিক্ট

KNN

Distance metric দিয়ে instance-based learning।

Hook — পাড়ার মানুষ দেখে বলো

নতুন একজন এলাকায় এলে আমরা তার পাশের ৫ জন প্রতিবেশীকে দেখি — যদি সবাই ছাত্র হয়, ধরে নেই সেও ছাত্র। KNN ঠিক এভাবেই কাজ করে — কাছের K জন “প্রতিবেশী” এর majority দেখে decision।

Concept — Lazy Learner

KNN এর কোনো training phase নেই — পুরো dataset মনে রাখে। নতুন point আসলে সব training point এর সাথে distance মেপে K nearest খুঁজে বের করে।

  • Classification — K neighbours এর majority vote।
  • Regression — K neighbours এর গড়।

Math — Distance Metric

Euclidean

d(a,b) = √Σ (aᵢ − bᵢ)²

Manhattan

d(a,b) = Σ |aᵢ − bᵢ|

Minkowski (general)

d(a,b) = (Σ |aᵢ − bᵢ|^p)^(1/p)

Real-world Use

  • Recommendation — similar user/product খুঁজে বের করা।
  • Handwriting recognition।
  • Anomaly detection।
  • Image similarity search।

Code — Sklearn KNN

knn_iris.py
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = load_iris(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.2, random_state=42)

scaler = StandardScaler().fit(Xtr)
Xtr_s, Xte_s = scaler.transform(Xtr), scaler.transform(Xte)

for k in [1, 3, 5, 7, 15]:
    model = KNeighborsClassifier(n_neighbors=k).fit(Xtr_s, ytr)
    acc = accuracy_score(yte, model.predict(Xte_s))
    print(f"k={k}  acc={acc:.3f}")

Common Mistakes

সবচেয়ে বড় ভুল

Scaling না করা — বড় scale এর feature distance dominate করে।

  • K=1 ব্যবহার — overfit।
  • K অনেক বড় — underfit।
  • বড় dataset এ KNN — predict slow হয়ে যায়।
  • Categorical feature এ Euclidean — meaningless।

Practice Tasks

  • Task 1: K=1 থেকে 30 পর্যন্ত accuracy plot করো — sweet spot বের করো।
  • Task 2: Euclidean vs Manhattan তুলনা করো।
  • Task 3: KNN regression দিয়ে boston housing predict করো।

Mini Project — Movie Recommender

MovieLens dataset এ user-rating matrix থেকে cosine similarity দিয়ে user-based KNN recommender বানাও। একজন user কে ৫টি movie recommend করো।

Summary

এক নজরে

KNN = কাছের প্রতিবেশী দেখে decision। Lazy, simple, scaling-sensitive।