Kursinhalt
Klassifikation mit Python
Klassifikation mit Python
K-NN mit Mehreren Merkmalen
Sie verstehen nun, wie k-NN funktioniert, wenn es nur ein Merkmal gibt. Lassen Sie uns zu einem etwas komplexeren Beispiel mit zwei Merkmalen, Gewicht und Breite, übergehen.
Auf diese Weise müssen wir Nachbarn sowohl in Bezug auf die Breite als auch auf das Gewicht finden. Aber es gibt ein kleines Problem damit. Lassen Sie uns die Süßigkeiten plotten und sehen, was falsch ist:
Sie können sehen, dass das Gewicht von 12 bis 64 reicht, während die Breite nur zwischen 5 und 12 liegt. Da der Bereich der Breite viel kleiner ist, sehen die Süßigkeiten fast vertikal ausgerichtet aus. Und wenn wir jetzt die Abstände berechnen, werden sie fast nur Unterschiede im Gewicht sein, als hätten wir die Breite nie berücksichtigt :'(
Es gibt jedoch eine Lösung – die Skalierung der Daten.
Jetzt sind sowohl Gewicht als auch Breite auf derselben Skala und um null zentriert. Dies ist mit der StandardScaler
-Klasse aus sklearn
erreichbar. Hier ist die Syntax:
Sie sollten die Daten immer skalieren, bevor Sie k-Nearest Neighbors verwenden.
Hinweis
StandardScaler
zentriert die Daten um null. Das Zentrieren ist für k-NN nicht obligatorisch und kann sogar verwirrend sein, "wie kann Gewicht negativ sein"... Aber dies ist nur eine Möglichkeit, Daten für einen Computer darzustellen, und einige andere Modelle erfordern eine Zentrierung, daher ist es besser,StandardScaler
standardmäßig für die Skalierung zu verwenden.
Mit skalierten Daten können wir jetzt die Nachbarn finden!
Im Fall von k-NN mit zwei Merkmalen finden wir die Kreisnachbarschaft mit der gewünschten Anzahl von Nachbarn. Bei drei beteiligten Merkmalen suchen wir eine Kugelnachbarschaft.
Bei mehr als drei Merkmalen ist die Form einer Nachbarschaft komplexer, sodass wir sie nicht visualisieren können, aber mathematisch ist es dasselbe.
Danke für Ihr Feedback!