Stummel Was ist ein KNN (K-Nearest Neighbors)? - Unite.AI
Vernetzen Sie sich mit uns

AI 101

Was ist ein KNN (K-Nearest Neighbors)?

mm
Aktualisiert on

Was ist K-Nearest Neighbors (KNN)?

K-Nearest Neighbors ist eine Technik und ein Algorithmus für maschinelles Lernen kann sowohl für Regressions- als auch für Klassifizierungsaufgaben verwendet werden. K-Nächste Nachbarn untersucht die Beschriftungen einer ausgewählten Anzahl von Datenpunkten um einen Zieldatenpunkt 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 einer der beliebtesten Algorithmen für maschinelles Lernen. Tauchen wir tief in den KNN-Algorithmus ein und sehen wir uns genau an, wie er funktioniert. Wenn Sie gut verstehen, wie KNN funktioniert, können Sie die besten und schlechtesten Anwendungsfälle für KNN erkennen.

Übersicht über K-nächste Nachbarn (KNN)

Foto: Antti Ajanki AnAj über Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Lassen Sie uns einen Datensatz auf einer 2D-Ebene visualisieren. Stellen Sie sich eine Reihe von Datenpunkten in einem Diagramm vor, die in kleinen Clustern über das Diagramm verteilt sind. KNN untersucht die Verteilung der Datenpunkte und unterteilt die Datenpunkte abhängig von den Argumenten des Modells in Gruppen. Diesen Gruppen wird dann ein Label zugewiesen. Die Hauptannahme eines KNN-Modells besteht darin, dass Datenpunkte/Instanzen, die in unmittelbarer Nähe zueinander existieren, sehr ähnlich sind, während ein Datenpunkt, wenn er weit von einer anderen Gruppe entfernt ist, diesen Datenpunkten unähnlich ist.

Ein KNN-Modell berechnet die Ähnlichkeit anhand des Abstands zwischen zwei Punkten in einem Diagramm. Je größer der Abstand zwischen den Punkten ist, desto weniger ähnlich sind sie. Es gibt mehrere Möglichkeiten, den Abstand zwischen Punkten zu berechnen, aber die gebräuchlichste Distanzmetrik ist einfach die euklidische Distanz (der Abstand zwischen zwei Punkten auf einer geraden Linie).

KNN ist ein überwachter Lernalgorithmus, was bedeutet, dass den Beispielen im Datensatz Labels zugewiesen sein müssen bzw. ihre Klassen bekannt sein müssen. Es gibt zwei weitere wichtige Dinge, die Sie über KNN wissen sollten. Erstens ist KNN ein nichtparametrischer Algorithmus. Dies bedeutet, dass bei der Verwendung des Modells keine Annahmen über den Datensatz getroffen werden. Vielmehr wird das Modell vollständig aus den bereitgestellten Daten erstellt. Zweitens gibt es bei der Verwendung von KNN keine Aufteilung des Datensatzes in Trainings- und Testsätze. KNN macht keine Verallgemeinerungen zwischen einem Trainings- und einem Testsatz, daher werden alle Trainingsdaten auch verwendet, wenn das Modell aufgefordert wird, Vorhersagen zu treffen.

Wie ein KNN-Algorithmus funktioniert

Ein KNN-Algorithmus durchläuft bei seiner Ausführung drei Hauptphasen:

  1. K auf die gewählte Anzahl von Nachbarn setzen.
  2. Berechnen des Abstands zwischen einem bereitgestellten/Testbeispiel und den Datensatzbeispielen.
  3. Sortieren der berechneten Entfernungen.
  4. Abrufen der Beschriftungen der Top-K-Einträge.
  5. Rückgabe einer Vorhersage zum Testbeispiel.

Im ersten Schritt wird K vom Benutzer ausgewählt und teilt dem Algorithmus mit, wie viele Nachbarn (wie viele umgebende Datenpunkte) bei der Beurteilung der Gruppe, zu der das Zielbeispiel gehört, berücksichtigt werden sollen. Beachten Sie, dass das Modell im zweiten Schritt den Abstand zwischen dem Zielbeispiel und jedem Beispiel im Datensatz überprüft. Die Entfernungen werden dann zu einer Liste hinzugefügt und sortiert. Anschließend wird die sortierte Liste überprüft und die Beschriftungen für die obersten K-Elemente zurückgegeben. Mit anderen Worten: Wenn K auf 5 gesetzt ist, überprüft das Modell die Beschriftungen der fünf obersten Datenpunkte, die dem Zieldatenpunkt am nächsten liegen. Beim Rendern einer Vorhersage über den Zieldatenpunkt ist es wichtig, ob es sich bei der Aufgabe um eine handelt Regression or Einstufung Aufgabe. Für eine Regressionsaufgabe wird der Mittelwert der Top-K-Labels verwendet, während bei der Klassifizierung der Modus der Top-K-Labels verwendet wird.

Die genauen mathematischen Operationen zur Durchführung von KNN unterscheiden sich je nach gewählter Distanzmetrik. Wenn Sie mehr darüber erfahren möchten, wie die Metriken berechnet werden, können Sie sich über einige der gängigsten Distanzmetriken informieren, z Euklidisch, Manhattan und Minkowski.

Warum der Wert von K wichtig ist

Die Haupteinschränkung bei der Verwendung von KNN besteht darin, dass möglicherweise ein falscher Wert von K (die falsche Anzahl der zu berücksichtigenden Nachbarn) gewählt wird. In diesem Fall können die zurückgegebenen Vorhersagen erheblich abweichen. Bei der Verwendung eines KNN-Algorithmus ist es sehr wichtig, dass 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 über unsichtbare Daten zu treffen und gleichzeitig die Anzahl der Fehler, die es macht, reduziert.

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

Niedrigere K-Werte bedeuten, dass die vom KNN gemachten Vorhersagen weniger stabil und zuverlässig sind. Um eine Vorstellung davon zu bekommen, warum das so ist, betrachten wir einen Fall, in dem wir sieben Nachbarn um einen Zieldatenpunkt herum haben. Nehmen wir an, dass das KNN-Modell mit einem K-Wert von 7 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) zur blauen Klasse gehören, die beiden nächsten Nachbarn aber zufällig rot sind, sagt das Modell voraus, dass das Abfragebeispiel rot ist. Trotz der Vermutung des Modells wäre in einem solchen Szenario Blau die bessere Vermutung.

Wenn dies der Fall ist, warum wählen wir dann nicht einfach den höchstmöglichen K-Wert? Dies liegt daran, dass die Anweisung an das Modell, zu viele Nachbarn zu berücksichtigen, auch die Genauigkeit verringert. Wenn der Radius, den das KNN-Modell berücksichtigt, zunimmt, werden irgendwann Datenpunkte berücksichtigt, die näher an anderen Gruppen liegen als der Zieldatenpunkt, und es kommt zu einer Fehlklassifizierung. Selbst wenn beispielsweise der ursprünglich ausgewählte Punkt in einem der roten Bereiche oben lag und K zu hoch eingestellt war, würde das Modell in die anderen Bereiche greifen, um Punkte zu berücksichtigen. Bei Verwendung eines KNN-Modells werden verschiedene K-Werte ausprobiert, um herauszufinden, welcher Wert dem Modell die beste Leistung verleiht.

KNN Vor- und Nachteile

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

Vorteile:

Im Gegensatz zu einigen anderen überwachten Lernalgorithmen kann KNN sowohl für Regressions- als auch für Klassifizierungsaufgaben verwendet werden.

KNN ist äußerst genau und einfach zu verwenden. Es ist leicht zu interpretieren, zu verstehen und umzusetzen.

KNN macht keine Annahmen über die Daten, was bedeutet, dass sie für eine Vielzahl von Problemen verwendet werden können.

Nachteile:

KNN speichert die meisten oder alle Daten, was bedeutet, dass das Modell viel Speicher benötigt und rechenintensiv ist. Große Datenmengen können auch dazu führen, dass Vorhersagen lange dauern.

KNN reagiert sehr empfindlich auf die Größe des Datensatzes und kann im Vergleich zu anderen Modellen relativ leicht durch irrelevante Merkmale aus dem Gleichgewicht gebracht werden.

Zusammenfassung der K-nächsten Nachbarn (KNN)

K-Nearest Neighbors ist einer der einfachsten Algorithmen für maschinelles Lernen. Obwohl KNN vom Konzept her einfach ist, handelt es sich dennoch um einen leistungsstarken Algorithmus, der bei den meisten Problemen eine recht hohe Genauigkeit liefert. Wenn Sie KNN verwenden, experimentieren Sie unbedingt mit verschiedenen K-Werten, um die Zahl zu finden, die die höchste Genauigkeit bietet.

Blogger und Programmierer mit Spezialisierung auf Maschinelles lernen machen Tiefes Lernen Themen. Daniel hofft, anderen dabei zu helfen, die Macht der KI für das soziale Wohl zu nutzen.