Strona główna Uczenie Maszynowe k najbliższych sąsiadów

📊 k najbliższych sąsiadów

Klasyfikuj punkt większością głosów jego k najbliższych oznaczonych sąsiadów. Obszary decyzyjne aktualizują się na żywo, gdy zmieniasz k, metrykę lub dane — zobacz przeuczenie przy k=1 i wygładzanie przy rosnącym k.

Uczenie Maszynowe2DŚredni60 FPS
knn ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Ta symulacja to interaktywny klasyfikator k najbliższych sąsiadów (k-NN): klikaj, aby dodawać oznaczone punkty, obserwuj, jak formują się obszary decyzyjne, odpytuj punkt testowy i śledź dokładność LOOCV. To „leniwy” algorytm uczenia bez jawnej fazy treningu — po prostu zapamiętuje wszystkie punkty i klasyfikuje nowe na podstawie głosowania najbliższych sąsiadów.

🔬 Co pokazuje

Dwuwymiarową płaszczyznę pokolorowaną obszarami decyzyjnymi klasyfikatora k-NN: kolor każdego obszaru odpowiada klasie, która otrzyma większość głosów wśród k najbliższych oznaczonych punktów w tej strefie. Zmieniając k, metrykę odległości lub sam punkt zapytania, od razu widzisz, jak przekształcają się granice między klasami.

🎮 Jak korzystać

Wybierz gotowy zbiór danych lub klasę dla nowych punktów i klikaj na płótnie, aby dodawać oznaczone punkty. Dostosuj k, metrykę odległości (euklidesowa, Manhattan itd.), włącz ważone głosowanie lub przełącz wyświetlanie obszarów decyzyjnych. Przyciski czyszczenia i losowania pozwalają szybko przebudować zbiór danych i obserwować, jak dokładność LOOCV (walidacji krzyżowej typu leave-one-out) zmienia się w zależności od parametrów.

💡 Czy wiesz, że?

k-NN to jeden z najstarszych i najprostszych algorytmów uczenia maszynowego: w zasadzie w ogóle się nie „uczy” w tradycyjnym sensie, a jedynie zapamiętuje wszystkie przykłady i odkłada wszystkie obliczenia do momentu predykcji, dlatego nazywa się go „leniwym uczeniem” (lazy learning). Sprawia to, że jest intuicyjny, ale kosztowny obliczeniowo na dużych zbiorach danych, ponieważ każda predykcja wymaga porównania ze wszystkimi zapisanymi punktami.

Najczęściej zadawane pytania

Jak k-NN dokonuje predykcji dla nowego punktu danych?

k-NN oblicza odległość od nowego punktu do każdego punktu zbioru treningowego, wyznacza k najbliższych z nich i przypisuje klasę na podstawie głosowania większościowego ich etykiet. W przypadku regresji uśrednia wartości docelowe k sąsiadów. Wybór k kontroluje kompromis między niedouczeniem (duże k, bardzo gładka granica) a przeuczeniem (małe k, „zaszumiona” granica).

Jak wybrać najlepszą wartość k?

k wybiera się metodą walidacji krzyżowej: model trenuje się na części danych, testuje na odłożonym zbiorze walidacyjnym i ocenia dokładność dla różnych wartości k. Zwykle k przyjmuje się jako liczbę nieparzystą, by uniknąć remisów, a k=√n (gdzie n to rozmiar zbioru treningowego) to popularna reguła praktyczna. Optymalne k balansuje obciążenie (zbyt duże k nadmiernie wygładza granicę) i wariancję (zbyt małe k daje „zaszumioną” granicę).

Jakie metryki odległości są używane w k-NN?

Domyślnie stosowana jest odległość euklidesowa (linia prosta między punktami). Odległość Manhattan (suma wartości bezwzględnych różnic) jest przydatna, gdy cechy mają różne jednostki lub dane mają strukturę siatkową. Odległość Minkowskiego uogólnia obie. Dla danych tekstowych lub kategorycznych bardziej odpowiednie mogą być odległość Hamminga lub podobieństwo kosinusowe. Skalowanie cech (normalizacja lub standaryzacja) jest niezbędne przed obliczeniem odległości.

Czym jest przekleństwo wymiarowości i jak wpływa na k-NN?

W przestrzeniach wysokowymiarowych wszystkie punkty danych stają się w przybliżeniu równoodległe od siebie, przez co samo pojęcie najbliższych sąsiadów traci sens. Wraz ze wzrostem liczby wymiarów objętość przestrzeni rośnie wykładniczo, podczas gdy rozmiar danych pozostaje ten sam, więc sąsiedztwa muszą ogromnie się rozszerzać, aby objąć jakiekolwiek punkty. Wydajność k-NN gwałtownie spada powyżej mniej więcej 10–20 wymiarów bez redukcji wymiarowości.

Czym k-NN różni się od klasteryzacji k-średnich?

k-NN to algorytm uczenia nadzorowanego do klasyfikacji lub regresji: wykorzystuje oznaczone dane treningowe, aby przewidywać etykiety dla nowych punktów. k-średnie to algorytm klasteryzacji nienadzorowanej: znajduje naturalne grupy w danych nieoznaczonych. Mimo wspólnej litery k (i tego, że oba operują na odległościach i sąsiadach), rozwiązują one zupełnie różne problemy, opierając się na różnych założeniach i metodach.

Podobne symulacje