Warum müssen Sie Daten in KNN skalieren?

15

Könnte mir bitte jemand erklären, warum Sie Daten normalisieren müssen, wenn Sie K nächste Nachbarn verwenden.

Ich habe versucht, dies nachzuschlagen, aber ich kann es immer noch nicht verstehen.

Ich habe folgenden Link gefunden:

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

Aber in dieser Erklärung verstehe ich nicht, warum ein größerer Bereich in einem der Merkmale die Vorhersagen beeinflusst.

Bugsyb
quelle
Ich denke, Normalisierung muss aus sachlicher Sicht gerechtfertigt sein. Im Wesentlichen kommt es darauf an, was den Abstand zwischen Punkten definiert. Sie müssen eine bequeme arithmetische Definition der Entfernung finden, die die thematische Definition der Entfernung widerspiegelt. Aufgrund meiner begrenzten Erfahrung habe ich mich in einige, aber nicht alle Richtungen normalisiert, basierend auf Überlegungen zum Thema.
Richard Hardy
1
Ein instruktives Beispiel finden Sie unter stats.stackexchange.com/questions/140711 .
whuber

Antworten:

26

Der Algorithmus für den nächsten k-Nachbarn basiert auf der Mehrheitsabstimmung basierend auf der Klassenzugehörigkeit der nächsten k-Stichproben für einen bestimmten Testpunkt. Die Nähe von Proben basiert typischerweise auf dem euklidischen Abstand.

Stellen Sie sich ein einfaches Zwei-Klassen-Klassifizierungsproblem vor, bei dem eine Stichprobe der Klasse 1 (schwarz) zusammen mit den 10 nächsten Nachbarn (grün ausgefüllt) ausgewählt wird. In der ersten Abbildung sind die Daten nicht normalisiert, in der zweiten dagegen.

Daten ohne Normalisierung Daten mit Normalisierung

Beachten Sie, wie ohne Normalisierung alle nächsten Nachbarn in Richtung der Achse mit dem kleineren Bereich ausgerichtet sind, d. H x1

Normalisierung löst dieses Problem!

Kedarps
quelle
1
Diese Antwort ist genau richtig, aber ich fürchte, die Illustrationen könnten aufgrund der damit verbundenen Verzerrungen täuschen. Der Punkt könnte besser gemacht werden, indem beide so gezeichnet werden, dass die beiden Achsen jeweils den gleichen Maßstab haben.
whuber
1
Ich fand es schwierig, für beide Figuren alle Datenpunkte im gleichen Maßstab anzupassen. Daher habe ich in einer Notiz erwähnt, dass die Maßstäbe der Achsen unterschiedlich sind.
Kedarps
1
Diese Schwierigkeit ist eigentlich der Punkt Ihrer Antwort! Eine Möglichkeit, dies zu überwinden, besteht darin, keine derart extremen Skalenbereiche zu verwenden. Ein Maßstabunterschied von 5: 1 anstelle eines Unterschieds von 1000: 1 macht immer noch einen guten Eindruck. Eine andere Möglichkeit besteht darin, das Bild originalgetreu zu zeichnen: Das obere Streudiagramm scheint eine vertikale Linie von Punkten zu sein.
Whuber
2
@whuber, ich habe deinen ersten Kommentar falsch verstanden. Die Pläne wurden repariert, hoffentlich ist es jetzt besser!
Kedarps
1
@Untertherainbow Das ist richtig!
Kedarps
5

Angenommen, Sie hatten einen Datensatz (m "Beispiele" mal n "Features") und alle außer einer Feature-Dimension hatten Werte streng zwischen 0 und 1, während eine einzelne Feature-Dimension Werte im Bereich von -1000000 bis 1000000 hatte zwischen Paaren von "Beispielen" können die Werte der Merkmalsdimensionen, die zwischen 0 und 1 liegen, uninformativ werden, und der Algorithmus würde im Wesentlichen von der einzelnen Dimension abhängen, deren Werte wesentlich größer sind. Berechnen Sie einfach einige Beispiele für euklidische Entfernungsberechnungen und Sie können verstehen, wie sich die Skala auf die Berechnung des nächsten Nachbarn auswirkt.

Derek Jones
quelle