Connect with us

KI 101

Was ist KNN (K-Nearest Neighbors)?

mm

Was ist K-Nearest Neighbors (KNN)?

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

Überblick über K-Nearest Neighbors (KNN)

Photo: 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 entlang des Graphen in kleinen Clustern verteilt sind. KNN untersucht die Verteilung der Datenpunkte und, je nach den Argumenten, die dem Modell gegeben werden, trennt es die Datenpunkte in Gruppen. 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 euklidische Distanz (der Abstand zwischen zwei Punkten in einer geraden Linie).

KNN ist ein Algorithmus des überwachten Lernens, was bedeutet, dass die Beispiele im Dataset Labels zugewiesen haben müssen/ihre Klassen bekannt sein müssen. Es gibt zwei andere wichtige Dinge, die Sie über KNN wissen sollten. 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 bei der Verwendung von KNN. KNN macht keine Verallgemeinerungen zwischen einem Trainings- und einem Testset, sodass alle Trainingsdaten auch verwendet werden, wenn das Modell aufgefordert wird, Vorhersagen zu treffen.

Wie ein KNN-Algorithmus operiert

Ein KNN-Algorithmus geht durch drei Hauptphasen, wenn er durchgeführt wird:

  1. Setzen von K auf die gewählte Anzahl von Nachbarn.
  2. Berechnen des Abstands zwischen einem bereitgestellten/Test-Beispiel und den Dataset-Beispielen.
  3. Sortieren der berechneten Abstände.
  4. Abrufen der Labels der Top-K-Einträge.
  5. Zurückgeben einer Vorhersage über das Test-Beispiel.

Im ersten Schritt wird K vom Benutzer gewählt und es teilt dem Algorithmus mit, wie viele Nachbarn (wie viele umgebende Datenpunkte) berücksichtigt werden sollten, wenn ein Urteil über die Gruppe gefällt wird, der das Ziel-Beispiel angehört. Im zweiten Schritt 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 zurückgegeben. Mit anderen Worten, wenn K auf 5 gesetzt wird, ü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 es sich um eine Regressions- oder Klassifizierungsaufgabe handelt. Für eine Regressionsaufgabe wird der Mittelwert der Top-K-Labels verwendet, während der Modus der Top-K-Labels im Falle einer Klassifizierungsaufgabe verwendet wird.

Die exakten mathematischen Operationen, die zur Durchführung 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 der Wert 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 fehlerhaft sein. Es ist sehr wichtig, dass, wenn Sie einen KNN-Algorithmus verwenden, 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 nicht gesehene Daten zu treffen, während die Anzahl der Fehler, die es macht, reduziert wird.

Photo: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Niedrige Werte von K bedeuten, dass die Vorhersagen, die von KNN gerendert werden, weniger stabil und zuverlässig sind. Um eine Intuition davon zu bekommen, warum dies so ist, betrachten Sie einen Fall, in dem wir 7 Nachbarn um einen Ziel-Datenpunkt haben. Nehmen wir an, dass das KNN-Modell mit einem K-Wert von 2 arbeitet (wir bitten es, die zwei 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 zwei nächsten Nachbarn zufällig Rot sind, wird das Modell vorhersagen, dass das Abfrage-Beispiel Rot ist. Trotz der Vermutung des Modells wäre Blau in einem solchen Szenario eine bessere Vermutung.

Wenn dies der Fall ist, warum nicht einfach den höchsten K-Wert wählen, den wir können? Dies liegt daran, dass die Anweisung an das Modell, zu viele Nachbarn zu berücksichtigen, 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. 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 reichen, um Punkte zu berücksichtigen. Wenn Sie ein KNN-Modell verwenden, werden verschiedene Werte von K ausprobiert, um zu sehen, welcher Wert dem Modell die beste Leistung gibt.

KNN-Vorteile und -Nachteile

Lassen Sie uns einige der Vorteile und Nachteile des KNN-Modells untersuchen.

Vorteile:

KNN kann für sowohl Regressions- als auch Klassifizierungsaufgaben verwendet werden, im Gegensatz zu anderen überwachten Lern-Algorithmen.

KNN ist sehr genau und einfach zu verwenden. Es ist leicht 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 Datasets können auch dazu führen, dass Vorhersagen lange dauern.

KNN ist sehr empfindlich gegenüber der Skalierung des Datasets 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 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.

Blogger und Programmierer mit Spezialisierungen in Machine Learning und Deep Learning Themen. Daniel hofft, anderen zu helfen, die Macht von KI für das soziale Wohl zu nutzen.