Dlaczego musisz skalować dane w KNN

15

Czy ktoś mógłby mi wyjaśnić, dlaczego należy znormalizować dane, używając K najbliższych sąsiadów.

Próbowałem to sprawdzić, ale nadal nie mogę tego zrozumieć.

Znalazłem następujący link:

https://discuss.analyticsvidhya.com/t/why-it-is-necessary-to-normalize-in-knn/2715

Ale w tym wyjaśnieniu nie rozumiem, dlaczego większy zakres jednej z funkcji wpływa na prognozy.

bugsyb
źródło
Myślę, że normalizacja musi być uzasadniona z merytorycznego punktu widzenia. Zasadniczo liczy się to, co określa odległość między punktami. Musisz znaleźć wygodną arytmetyczną definicję odległości, która odzwierciedla przedmiotową definicję odległości. Według mojego ograniczonego doświadczenia normalizuję się w niektórych, ale nie we wszystkich kierunkach, w oparciu o względy przedmiotowe.
Richard Hardy
1
Aby uzyskać pouczający przykład, zobacz stats.stackexchange.com/questions/140711 .
whuber

Odpowiedzi:

27

Algorytm k-najbliższego sąsiada polega na głosowaniu większościowym na podstawie przynależności do klasy najbliższych próbek „k” dla danego punktu testowego. Bliskość próbek zazwyczaj opiera się na odległości euklidesowej.

Rozważ prosty problem z klasyfikacją dwóch klas, w którym wybierana jest próbka klasy 1 (czarna) wraz z jej 10 najbliższymi sąsiadami (wypełniona na zielono). Na pierwszym rysunku dane nie są znormalizowane, podczas gdy na drugim są.

Dane bez normalizacji Dane z normalizacją

x1

Normalizacja rozwiązuje ten problem!

kedarps
źródło
1
Ta odpowiedź jest dokładnie słuszna, ale obawiam się, że ilustracje mogą być mylące z powodu zniekształceń. Punkt może być lepiej wykonany poprzez narysowanie ich obu, aby obie osie były w tej samej skali.
whuber
1
Trudno mi było dopasować wszystkie punkty danych w tej samej skali dla obu liczb. Dlatego wspomniałem w notatce, że skale osi są różne.
kedarps
1
Ta trudność jest właściwie punktem twojej odpowiedzi! Jednym ze sposobów na pokonanie tego jest niestosowanie tak ekstremalnego zakresu skal. Różnica w skali 5: 1, a nie różnica 1000: 1, nadal byłaby trafna. Innym sposobem jest wierne narysowanie obrazu: górny wykres rozrzutu będzie wyglądał jak pionowa linia punktów.
whuber
2
@ Whuber, źle zrozumiałem twój pierwszy komentarz. Naprawiono wykresy, mam nadzieję, że teraz jest lepiej!
kedarps
1
@Undertherainbow To prawda!
kedarps,
6

Załóżmy, że posiadasz zestaw danych (m „przykłady” przez n „elementów”), a wszystkie wymiary elementu oprócz jednego miały wartości ściśle od 0 do 1, podczas gdy jeden wymiar elementu miał wartości z zakresu od -1000000 do 1000000. Przy przyjmowaniu odległości euklidesowej pomiędzy parami „przykładów” wartości wymiarów cechy, które mieszczą się w zakresie od 0 do 1, mogą stać się nieinformacyjne, a algorytm zasadniczo opierałby się na pojedynczym wymiarze, którego wartości są znacznie większe. Wystarczy wykonać kilka przykładowych obliczeń euklidesowych odległości i można zrozumieć, w jaki sposób skala wpływa na obliczenia najbliższego sąsiada.

Derek Jones
źródło