Grundlagen der KI
Was ist KNN (K-Nearest Neighbors)?
Was ist K-Nearest Neighbors (KNN)?
K-Nearest Neighbors ist eine maschinelle Lern-Technik und ein Algorithmus, der für beide Regression- und Klassifizierungsaufgaben verwendet werden kann. K-Nearest Neighbors untersucht die Labels einer gewählten Anzahl von Datenpunkten um einen Ziel-Datenpunkt herum, um eine Vorhersage über die Klasse zu treffen, in die der Datenpunkt fällt. K-Nearest Neighbors (KNN) ist ein konzeptionell einfacher, aber sehr leistungsfähiger Algorithmus, und aus diesen Gründen ist er einer der beliebtesten maschinellen Lern-Algorithmen. Lassen Sie uns einen tiefen Einblick in den KNN-Algorithmus nehmen und sehen, wie er genau funktioniert. Ein gutes Verständnis davon, wie KNN funktioniert, lässt Sie die besten und schlechtesten Anwendungsfälle für KNN schätzen.
Überblick über K-Nearest Neighbors (KNN)

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
Lassen Sie uns ein Dataset auf einer 2D-Ebene visualisieren. Stellen Sie sich eine Menge von Datenpunkten auf einem Graphen vor, die über den Graphen in kleinen Clustern verteilt sind. KNN untersucht die Verteilung der Datenpunkte und, je nach den Argumenten, die dem Modell gegeben werden, teilt es die Datenpunkte in Gruppen ein. Diese Gruppen werden dann einem Label zugewiesen. Die primäre Annahme, die ein KNN-Modell trifft, ist, dass Datenpunkte/Instanzen, die in enger Nähe zueinander existieren, sehr ähnlich sind, während ein Datenpunkt, der weit von einer anderen Gruppe entfernt ist, diesen Datenpunkten unähnlich ist.
Ein KNN-Modell berechnet die Ähnlichkeit mithilfe des Abstands zwischen zwei Punkten auf einem Graphen. Der größere der Abstand zwischen den Punkten, desto weniger ähnlich sind sie. Es gibt mehrere Möglichkeiten, den Abstand zwischen Punkten zu berechnen, aber die häufigste Distanzmetrik ist die einfache euklidische Distanz (der Abstand zwischen zwei Punkten in einer geraden Linie).
KNN ist ein überwachtes Lern-Algorithmus, was bedeutet, dass die Beispiele im Dataset Labels zugewiesen haben müssen/ihre Klassen müssen bekannt sein. Es gibt zwei weitere wichtige Dinge, die man über KNN wissen sollte. Erstens ist KNN ein nicht-parametrischer Algorithmus. Das bedeutet, dass keine Annahmen über das Dataset getroffen werden, wenn das Modell verwendet wird. Stattdessen wird das Modell vollständig aus den bereitgestellten Daten konstruiert. Zweitens gibt es keine Aufteilung des Datasets in Trainings- und Testsets, wenn KNN verwendet wird. KNN macht keine Verallgemeinerungen zwischen einem Trainings- und Testset, sodass alle Trainingsdaten auch verwendet werden, wenn das Modell aufgefordert wird, Vorhersagen zu treffen.
Wie funktioniert ein KNN-Algorithmus
Ein KNN-Algorithmus geht durch drei Hauptphasen, wenn er durchgeführt wird:
- Setzen von K auf die gewählte Anzahl von Nachbarn.
- Berechnen des Abstands zwischen einem bereitgestellten/Test-Beispiel und den Dataset-Beispielen.
- Sortieren der berechneten Abstände.
- Abrufen der Labels der Top-K-Einträge.
- Zurückgeben einer Vorhersage über das Test-Beispiel.
In der ersten Phase wird K vom Benutzer gewählt und es teilt dem Algorithmus mit, wie viele Nachbarn (wie viele umgebende Datenpunkte) berücksichtigt werden sollen, wenn eine Entscheidung über die Gruppe getroffen wird, der das Ziel-Beispiel angehört. In der zweiten Phase beachten Sie, dass das Modell den Abstand zwischen dem Ziel-Beispiel und jedem Beispiel im Dataset überprüft. Die Abstände werden dann in eine Liste eingefügt und sortiert. Anschließend wird die sortierte Liste überprüft und die Labels der Top-K-Elemente werden zurückgegeben. Mit anderen Worten, wenn K auf 5 gesetzt ist, überprüft das Modell die Labels der 5 nächsten Datenpunkte zum Ziel-Datenpunkt. Wenn eine Vorhersage über den Ziel-Datenpunkt getroffen wird, ist es wichtig, ob die Aufgabe eine Regression oder Klassifizierung ist. Für eine Regressionsaufgabe wird der Mittelwert der Top-K-Labels verwendet, während der Modus der Top-K-Labels im Falle einer Klassifizierung verwendet wird.
Die exakten mathematischen Operationen, die zum Durchführen von KNN verwendet werden, unterscheiden sich je nach gewählter Distanzmetrik. Wenn Sie mehr über die Berechnung der Metriken erfahren möchten, können Sie über einige der häufigsten Distanzmetriken wie Euklidisch, Manhattan und Minkowski lesen.
Warum die Wahl von K wichtig ist
Die Hauptbeschränkung bei der Verwendung von KNN ist, dass ein unangemessener Wert von K (die falsche Anzahl von Nachbarn, die berücksichtigt werden sollen) gewählt werden kann. Wenn dies passiert, können die zurückgegebenen Vorhersagen erheblich abweichen. Es ist sehr wichtig, dass, wenn ein KNN-Algorithmus verwendet wird, der richtige Wert für K gewählt wird. Sie möchten einen Wert für K wählen, der die Fähigkeit des Modells maximiert, Vorhersagen auf unbekannten Daten zu treffen, während die Anzahl der Fehler, die es macht, reduziert wird.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
Niedrigere Werte von K bedeuten, dass die Vorhersagen, die von KNN getroffen werden, weniger stabil und zuverlässig sind. Um eine Vorstellung davon zu bekommen, warum dies so ist, betrachten Sie einen Fall, in dem wir 7 Nachbarn um einen Ziel-Datenpunkt herum haben. Nehmen wir an, dass das KNN-Modell mit einem K-Wert von 2 arbeitet (wir bitten es, die beiden nächsten Nachbarn zu betrachten, um eine Vorhersage zu treffen). Wenn die überwiegende Mehrheit der Nachbarn (fünf von sieben) der Blauen Klasse angehören, aber die beiden nächsten Nachbarn zufällig Rot sind, wird das Modell vorhersagen, dass das Test-Beispiel Rot ist. Trotz der Vorhersage des Modells wäre Blau in einem solchen Szenario eine bessere Vorhersage.
Wenn dies der Fall ist, warum nicht einfach den höchsten K-Wert wählen, den wir können? Dies liegt daran, dass das Modell, wenn es zu viele Nachbarn berücksichtigt, auch die Genauigkeit verringern wird. Wenn der Radius, den das KNN-Modell berücksichtigt, zunimmt, wird es schließlich beginnen, Datenpunkte zu berücksichtigen, die näher an anderen Gruppen als am Ziel-Datenpunkt sind, und Fehlklassifizierungen werden beginnen, aufzutreten. Zum Beispiel, auch wenn der ursprünglich gewählte Punkt in einer der roten Regionen oben war, wenn K zu hoch gesetzt wurde, würde das Modell in die anderen Regionen vordringen, um Punkte zu berücksichtigen. Wenn ein KNN-Modell verwendet wird, werden verschiedene Werte von K ausprobiert, um zu sehen, welcher Wert dem Modell die beste Leistung gibt.
Vorteile und Nachteile von KNN
Lassen Sie uns einige der Vorteile und Nachteile des KNN-Modells betrachten.
Vorteile:
KNN kann für beide Regressions- und Klassifizierungsaufgaben verwendet werden, im Gegensatz zu anderen überwachten Lern-Algorithmen.
KNN ist sehr genau und einfach zu verwenden. Es ist einfach zu interpretieren, zu verstehen und zu implementieren.
KNN macht keine Annahmen über die Daten, was bedeutet, dass es für eine Vielzahl von Problemen verwendet werden kann.
Nachteile:
KNN speichert die meisten oder alle Daten, was bedeutet, dass das Modell viel Speicher benötigt und rechenintensiv ist. Große Datensätze können auch dazu führen, dass Vorhersagen lange dauern.
KNN ist sehr empfindlich gegenüber der Skalierung des Datensatzes und kann leicht durch irrelevante Merkmale abgelenkt werden im Vergleich zu anderen Modellen.
Zusammenfassung von K-Nearest Neighbors (KNN)
K-Nearest Neighbors ist einer der einfachsten maschinellen Lern-Algorithmen. Trotz seiner Einfachheit ist KNN ein leistungsfähiger Algorithmus, der auf den meisten Problemen eine ziemlich hohe Genauigkeit liefert. Wenn Sie KNN verwenden, sollten Sie verschiedene Werte von K ausprobieren, um den Wert zu finden, der die höchste Genauigkeit liefert.












