Thuta Learning
ရှာဖွေရန်
IntermediateData & Databasesintermediate

K-Nearest Neighbors (KNN)

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • K-Nearest Neighbors (KNN) ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် scikit-learn code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

KNN (K-Nearest Neighbors) က data point အသစ်ကို classify ချင်ရင် — training data ထဲက 'အနီးဆုံး neighbor K ခု' ကို ရှာပြီး, အများစု (majority vote) ရလဒ်ကို prediction အနေနဲ့ ပေးပါတယ် (K=5 ဆိုရင် အနီးဆုံး ၅ ခုကို ရှာပြီး, အများစုက Class A ဆိုရင် prediction ကလည်း Class A) — 'Lazy Learning' လို့ ခေါ်ကြပါတယ်, training phase မှာ data ကို 'memorize' ရုံသာ လုပ်ပြီး, prediction phase မှာမှ distance calculation ကို လုပ်တာမို့ပါ။ K value ရွေးချယ်မှု (small K = noise sensitive, large K = boundary blur) က model performance ကို သက်ရောက်ပါတယ်.

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

`from sklearn.neighbors import KNeighborsClassifier; model = KNeighborsClassifier(n_neighbors=5); model.fit(X_train, y_train)` လို့ ရေးရင် — data point အသစ်တစ်ခုကို predict ချင်ရင်, training data ထဲက distance အနီးဆုံး point ၅ ခုကို ရှာပြီး, အများစု class ကို ပြန်ပေးပါတယ် — K value ကို ကွဲပြားစွာ (K=1, K=5, K=15) ချကြည့်ပြီး test accuracy ဘယ်လို ပြောင်းလဲလဲ compare ကြည့်နိုင်ပါတယ်.

အတူတူ ကြည့်မယ်

python
from sklearn.neighbors import KNeighborsClassifier

for k in [1, 5, 15]:
    model = KNeighborsClassifier(n_neighbors=k)
    model.fit(X_train, y_train)
    accuracy = model.score(X_test, y_test)
    print(f"K={k}: accuracy={accuracy:.2f}")
You should see
K=1: accuracy=0.79
K=5: accuracy=0.86
K=15: accuracy=0.83

၅ မိနစ် စမ်းကြည့်

KNN classifier ကို K value (1, 5, 15) အမျိုးမျိုးနဲ့ train ကြည့်ပြီး, accuracy result ကို compare ကာ ဘယ် K value က ဒီ dataset အတွက် ပိုသင့်တော်လဲ ဆုံးဖြတ်ကြည့်ပါ။

သတိလေးတစ်ချက်

KNN ရဲ့ prediction time က training data size ကြီးလာတာနဲ့အမျှ slow ဖြစ်လာပါတယ် (data point တိုင်း distance calculate ရလို့) — large dataset (row သန်းချီရှိရင်) production မှာ KNN ကို direct သုံးရင် performance issue ဖြစ်နိုင်ပါတယ်.

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Feature Scaling (Basic chapter) မလုပ်ဘဲ KNN ကို သုံးခြင်း — KNN က distance-based algorithm ဖြစ်လို့, scale မတူတဲ့ feature တွေက distance calculation ကို skew ဖြစ်စေနိုင်ပါတယ် (scaling က KNN အတွက် အထူး အရေးကြီးပါတယ်)
  • K value ကို even number (K=4, K=10) ချထားခြင်း — binary classification မှာ vote tie ဖြစ်နိုင်ချေ ရှိလို့ odd number ကို သာ ပိုသုံးလေ့ရှိပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

KNN classifier ကို K value (1, 5, 15) အမျိုးမျိုးနဲ့ train ကြည့်ပြီး, accuracy result ကို compare ကာ ဘယ် K value က ဒီ dataset အတွက် ပိုသင့်တော်လဲ ဆုံးဖြတ်ကြည့်ပါ။

You'll know it worked when: K=1: accuracy=0.79 K=5: accuracy=0.86 K=15: accuracy=0.83

K-Nearest Neighbors (KNN) | Thuta Learning