Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Algorytm K Najbliższych Sąsiadów (KNN)

1. Czym jest algorytm KNN? Definicja

2. Kiedy używamy algorytmu KNN?

3. Jak działa algorytm KNN?

4. Jak dobieramy zmienną K?

5. Impelentacja
1. Algorytm k najbliższych sąsiadów (lub algorytm k-nn z ang. k nearest
neighbours) – jeden z algorytmów regresji nieparametrycznej używanych
w statystyce do prognozowania wartości pewnej zmiennej losowej.
Może również być używany do klasyfikacji. Jest najprostszym
i najwolniejszym algorytmem klasyfikacyjnym. Problematyczny staje się
przy dużych zestawach danych.

2. Algorytmu Najbliższego Sąsiada K używa się, aby rozwiązać problem


regresji lub klasyfikacji. Wiele branż używa tego nadzorowanego
systemu uczenia maszynowego do rozwiązywania problemów
z klasyfikacją.
Oto trzy ważne czynniki w ocenie każdej techniki:
– Jak łatwo można zinterpretować dane wyjściowe?
– Jak można obliczyć wynik?
– Jaka jest siła predykcyjna?

KNN jest idealny dla wszystkich powyższych parametrów do


pomiaru techniki. Jednakże, technika KNN ma częste zastosowania,
ponieważ jest łatwy do zinterpretowania i obliczenia mocy wyjściowej.

Algorytm k najbliższych sąsiadów jest użyteczny szczególnie


wtedy, gdy zależność między zmiennymi objaśniającymi a objaśnianymi
jest złożona lub nietypowa (np. niemonotoniczna), czyli trudna do
modelowania w klasyczny sposób. W przypadku, gdy zależność ta jest
łatwa do interpretacji (np. liniowa), a zbiór nie zawiera obserwacji
odstających, metody klasyczne (np. regresja liniowa) dadzą zwykle
dokładniejsze wyniki.

3. Jak działa algorytm KNN?

Weźmy prosty przypadek, aby zrozumieć ten algorytm. Poniżej znajduje


się rozkład czerwonych kółek i zielonych kwadratów :

Zamierzamy dowiedzieć się, jaka jest klasa niebieskiej gwiazdy.


Niebieska gwiazda może być czerwonym kółkiem lub zielonym
kwadratem i niczym więcej. „K” w algorytmie KNN to ilość najbliższych
sąsiadów, od któych chcemy odebrać głos. Powiedzmy, że K = 3. W
związku z tym utworzymy teraz okrąg z niebieską gwiazdą jako środkiem
tak dużym, aby obejmował tylko trzy punkty danych na płaszczyźnie.
Więcej informacji znajduje się na poniższym diagramie:

Wszystkie trzy najbliższe punkty wokół niebieskiej gwiazdy to


czerwone kółka. Stąd z całą pewnością możemy powiedzieć, że niebieska
gwiazda powinna należeć do klasy czerwone kółka. Tutaj wybór stał się
bardzo oczywisty, ponieważ wszystkie trzy głosy od najbliższego sąsiada
są od czerwonych kółek. Wybór parametru K jest w tym algorytmie
bardzo istotny. Należy zrozumieć jakie czynniki należy wziąć pod uwagę,
aby wybrać najlepszą wartość parametru K.

4. Najpierw spróbujmy zrozumieć, na co dokładnie wpływa K w algorytmie.


Jeśli weźmiemy pod uwagę ostatni przykład, biorąc pod uwagę, że
wszystkie 6 obiektów obserwacji pozostaje stałych, przy danej wartości K
możemy wyznaczyć granice każdej klasy. Granice te oddzielą czerwone
kółka od zielonych kwadratów. W ten sam sposób spróbujmy zobaczyć
wpływ wartości „K” na granice klas. Poniżej przedstawiono różne granice
oddzielające dwie klasy o różnych wartościach K.

Jeśli przyjrzymy się uważnie, zobaczymy, że granica staje się gładsza wraz
ze wzrostem wartości K. Wraz ze wzrostem K do nieskończoności
ostatecznie staje się cała niebieska lub cała czerwona, w zależności od
całkowitej większości. Poziom błędu szkolenia i wskaźnik błędu walidacji
to dwa parametry, których potrzebujemy, aby uzyskać dostęp do
różnych wartości K. Poniżej przedstawiono krzywą wskaźnika błędów
szkolenia ze zmienną wartością K :

Jak widać, poziom błędu przy K=1 jest zawsze równy zeru dla próby uczącej.
Dzieje się tak dlatego, że najbliższym punktem dowolnego punktu danych
treningowych jest on sam. Dlatego prognoza jest zawsze dokładna przy K=1.
Jeśli krzywa błędu walidacji byłaby podobna, nasz wybór K wynosiłby 1. Poniżej
znajduje się krzywa błędu walidacji ze zmienną wartością K:

Dzięki temu historia jest bardziej przejrzysta. Przy K=1 przekroczyliśmy granice.
W związku z tym poziom błędu początkowo maleje i osiąga wartości
minimalne. Po punkcie minimów wzrasta wraz ze wzrostem K. Aby uzyskać
optymalną wartość K, można oddzielić próbę i walidację od początkowego
zbioru danych. Teraz można wykreślić krzywą błędu walidacji, aby uzyskać
optymalną wartość K. Ta wartość K powinna być używana do wszystkich
prognoz.

5. Implementacja

Możemy zaimplementować model KNN, wykonując poniższe kroki:


• Ładowanie danych
• Inicjacja wartości k
• Aby uzyskać przewidywaną klasę, należy wykonać iterację od 1 do całkowitej
liczby punktów danych
• Obliczanie odległość między danymi testowymi a każdym wierszem danych
treningowych.

• Posortowanie obliczonych odległości w kolejności rosnącej na podstawie


wartości odległości
• Pobranie górnych k wierszy z posortowanej tablicy
• Uzyskanie najczęstszej klasy tych wierszy
• Zwrócenie przewidywanej klasy

You might also like