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.
k-nearest-neighbour
Bugsyb
quelle
quelle
Antworten:
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.
Beachten Sie, wie ohne Normalisierung alle nächsten Nachbarn in Richtung der Achse mit dem kleineren Bereich ausgerichtet sind, d. Hx1
Normalisierung löst dieses Problem!
quelle
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.
quelle