K-Nearest Neighbors (KNN)

Wprowadzenie

K-Nearest Neighbors (KNN) to jeden z najprostszych i najbardziej intuicyjnych algorytmów uczenia nadzorowanego (supervised learning). Stosowany zarówno do zadań klasyfikacji, jak i regresji. Należy do grupy algorytmów leniwych (lazy learning) – nie buduje modelu w fazie treningu, a obliczenia wykonuje dopiero w momencie predykcji.

Jak działa algorytm KNN?

Algorytm działa według następujących kroków:

  1. Obliczenie odległości między nowym punktem a wszystkimi punktami w zbiorze treningowym
  2. Wybranie K najbliższych sąsiadów (najmniejsza odległość)
  3. W przypadku klasyfikacji – głosowanie większościowe (najczęstsza klasa)
  4. W przypadku regresji – obliczenie średniej wartości sąsiadów

Popularne metryki odległości

  • Odległość euklidesowa (najczęściej używana)
  • Odległość Manhattan (L1)
  • Odległość Minkowski
  • Odległość cosinusowa (dla danych tekstowych)

Zastosowania KNN

  • Klasyfikacja obrazów i rozpoznawanie wzorców
  • Systemy rekomendacyjne
  • Wykrywanie spamu i anomalii
  • Medycyna (diagnozowanie na podstawie objawów)
  • Finanse (ocena ryzyka kredytowego)
  • Przetwarzanie języka naturalnego (NLP)

Zalety i wady algorytmu

  • Zalety: prostota, intuicyjność, brak założeń co do rozkładu danych, działa dobrze na małych i średnich zbiorach
  • Wady: wolny przy dużych zbiorach danych, wrażliwy na skalę cech, wymaga dobrania odpowiedniego K, przekleństwo wymiarowości

Najlepsze praktyki (2026)

  • Standaryzacja lub normalizacja cech przed użyciem
  • Używanie walidacji krzyżowej do wyboru optymalnego K
  • Techniki redukcji wymiarowości (PCA, t-SNE)
  • Optymalizacja za pomocą KD-Tree lub Ball Tree
  • Weighted KNN (ważenie sąsiadów odległością)

Powiązane pojęcia

Supervised LearningClassificationRegressionDistance MetricsK-MeansSupport Vector Machines (SVM)Random ForestCross Validation