GeeksforGeeks (Deutsch)
K-Nearest Neighbors ist einer der grundlegendsten und wichtigsten Klassifizierungsalgorithmen für maschinelles Lernen. Es gehört zur überwachten Lerndomäne und findet intensive Anwendung in der Mustererkennung, im Data Mining und in der Intrusion Detection.
Es ist in realen Szenarien weit verbreitet, da es nicht parametrisch ist, was bedeutet, dass es nicht funktioniert alle zugrunde liegenden Annahmen über die Verteilung von Daten (im Gegensatz zu anderen Algorithmen wie GMM, die eine Gaußsche Verteilung der angegebenen Daten annehmen).
Wir erhalten einige frühere Daten (auch Trainingsdaten genannt), die klassifiziert Koordinaten in Gruppen, die durch ein Attribut gekennzeichnet sind.
Betrachten Sie als Beispiel die folgende Tabelle von Datenpunkten mit zwei Merkmalen:
Geben Sie nun einen anderen Satz von Datenpunkten an ( Ordnen Sie diese Punkte einer Gruppe zu, indem Sie den Trainingssatz analysieren. Beachten Sie, dass die nicht klassifizierten Punkte als „Weiß“ markiert sind.
Intuition
Wenn wir diese Punkte in einem Diagramm darstellen, können wir möglicherweise einige Cluster oder Gruppen lokalisieren. Wenn wir nun einen nicht klassifizierten Punkt haben, können wir ihn einer Gruppe zuordnen, indem wir beobachten, zu welcher Gruppe die nächsten Nachbarn gehören. Dies bedeutet, dass ein Punkt in der Nähe einer Gruppe von Punkten, die als „Rot“ klassifiziert sind, eine höhere Wahrscheinlichkeit hat, als „Rot“ klassifiziert zu werden.
Intuitiv können wir sehen, dass der erste Punkt (2.5, 7) sein sollte klassifiziert als Grün und der zweite Punkt (5.5, 4.5) sollte als Rot klassifiziert werden.
Algorithmus
Sei m die Anzahl der Trainingsdatenproben. Sei p ein unbekannter Punkt.
- Speichern Sie die Trainingsmuster in einem Array von Datenpunkten arr. Dies bedeutet, dass jedes Element dieses Arrays ein Tupel (x, y) darstellt.
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Machen Sie die Menge S von K zu den kleinsten erhaltenen Abständen . Jeder dieser Abstände entspricht einem bereits klassifizierten Datenpunkt.
- Geben Sie das Mehrheitslabel unter S zurück.
K kann als ungerade Zahl beibehalten werden, damit wir berechnen können eine klare Mehrheit für den Fall, dass nur zwei Gruppen möglich sind (z. B. Rot / Blau). Mit zunehmendem K erhalten wir glattere, klarere Grenzen über verschiedene Klassifikationen hinweg. Außerdem erhöht sich die Genauigkeit des obigen Klassifikators, wenn wir die Anzahl der Datenpunkte im Trainingssatz erhöhen.
Beispielprogramm
Nehmen Sie 0 und 1 als die beiden Klassifikatoren (Gruppen) an.
Ausgabe:
The value classified to unknown point is 0.
Dieser Artikel wurde von Anannya Uberoi verfasst. Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel mit Contrib.geeksforgeeks.org schreiben oder Ihren Artikel an [email protected] senden. Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.