Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (2024)

Dieser Artikel erklärt einen der einfachsten Machine-Learning-Algorithmen K Nearest Neighbors (KNN). Der KNN-Klassifikator und die KNN-Regression werden in diesem Artikel mit Beispielen erläutert.

k Klassifizierung der nächsten Nachbarn

Der K Nearest Neighbors Algorithmus sagt grundsätzlich nach dem Prinzip voraus, dass die Daten in der gleichen Klasse wie die nächstgelegenen Daten sind. Gemäß dem Namen des Algorithmus stehen „nächste Nachbarn“ für die nächsten Daten und „k“ für die Anzahl der ausgewählten Daten. Der K-Wert ist ein Hyperparameter, daher wird er vom Benutzer eingestellt und jeder Versuch liefert normalerweise unterschiedliche Ergebnisse. Lassen Sie uns beispielsweise die Daten mit 2 Eingaben (Funktionen) in der Koordinatenebene anzeigen, deren x- und y-Achse die Eingaben (Funktionen) des Datensatzes darstellen. Wie in Abbildung 1 zu sehen, stellen blaue Kreise und orange Dreiecke unseren Datensatz dar, Sterne stellen die Daten dar, die den Klassen zugeordnet werden und sie werden dem Modell, das mit dem knn-Algorithmus erstellt wurde, zugeordnet, um Klassen von ihnen vorherzusagen. Der Algorithmus ordnet die Daten der Klasse der nächsten Daten zu.Kurz gesagt zeigt Abbildung 1, wie der Algorithmus eine neue Wertklasse mit unterschiedlichen k(k=1(oben), k=3(unten))-Werten vorhersagt. Diese Art von Problemen, dass es 2 Ausgänge gibt, die Kreis und Dreieck sind, werden als binäre Klassifikation bezeichnet. Aber knn kann auch eine Mehrfachklassifizierung beantragen. Schauen wir uns nun das Beispiel der 3-Nachbarn-Klassifizierung genauer an.

Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (1)

Bevor ich mit dem Beispiel beginne, sollte ich die sklearn-Bibliothek erwähnen. Es wurde bereits erwähnt, dass der knn-Algorithmus Vorhersagen basierend auf den nächsten Daten macht. Diese Implementierung kann auch manuell mit Codes erstellt werden (google „knn algorithm without sklearn“). Stattdessen stellt die sklearn-Bibliothek sicher, dass wir den knn-Algorithmus mit wenigen Codezeilen verwenden. Übrigens führen nicht nur sklearn, sondern auch Websites aller Art von Algorithmen die Implementierung des Algorithmus(google“sklearn.neighbors.KNeighborsClassifier”) . Wie sich herausstellt, ist der knn-Algorithmus, der vom Benutzer auf den Hyperparameter (k) abgestimmt wird, einer der einfachsten Algorithmen im maschinellen Lernen.

Lassen Sie uns das Beispiel fortsetzen, zuerst wird der Datensatz durch den train_test_split in einen Trainingssatz und einen Testsatz getrennt. Nachdem Sie 20% des Datensatzes als Testsatz und 80% des Datensatzes als Trainingssatz ausgewählt haben, wird unser KNN-Modell mit 3 Nachbarn als „clf“ definiert und dann das Modell mit dem Befehl .fit trainiert, wie in Abbildung 2 gezeigt. Danach testen Der am Anfang getrennte Satz wird dem Modell zugeführt und mit dem Befehl clf.predict zur Vorhersage der Eingaben bereitgestellt. Schließlich werden die Vorhersage des Testsatzes und des Testsatzes, die bekannte reale Ausgaben sind, mit dem Befehl clf.score verglichen und die Genauigkeitsrate wird präsentiert.

Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (3)

Die Grenzen der Klassifikation sind in Abbildung 3 in verschiedenen k-Werten dargestellt. Wie zu sehen ist, nimmt die Komplexität des Modells mit dem niedrigeren k-Wert zu und das Modell wird mit zunehmendem k-Wert einfacher. Mit anderen Worten: Wenn das Modell überangepasst wurde, sollte die Modellkomplexität verringert, dh der k-Wert erhöht werden. Im Gegensatz dazu sollte bei einer Unteranpassung des Modells die Modellkomplexität erhöht werden, dh der k-Wert verringert werden. Das Modell sollte durch Abstimmung des k-Werts verallgemeinert werden.

Bisher wird ein Datensatz mit 2 Eingaben (Funktionen) verwendet, um die Idee des knn-Algorithmus zu verstehen. Betrachten wir nun einen Krebsdatensatz, der mehr als 2 Eingaben hat. Der Datensatz besteht aus 569 Zeilen und 30 Spalten. Während die Eingaben aus numerischen Daten wie "mittlerer Radius", "mittlere Textur", "mittlerer Umfang", "mittlere Fläche" bestehen, die die technischen Eigenschaften des Gewebes enthalten, bestimmt die Ausgabe, ob das Gewebe je nach Eingabe bösartig oder gutartig ist. Dieses Problem wird auch als binäre Klassifizierung bezeichnet, da es 2 Ausgänge gibt. Abbildung 4 veranschaulicht diesen Effekt der k-Werte auf das Modell. Die Algorithmusgenauigkeiten verschiedener k-Werte sind in der Grafik dargestellt. Wie in der Grafik zu sehen ist, wird die höchste Genauigkeitsrate des Testsatzes erhalten, wenn k=6 gewählt wird.

k Regression der nächsten Nachbarn

Denken Sie daran: Wenn die Ausgaben des Datensatzes kategorisch eine bestimmte Zahl sind - beispielsweise die Ausgabe x, y oder z sein muss, wird das Problem als Klassifizierung bezeichnet. Wenn die Ausgaben des Datensatzes innerhalb eines bestimmten Bereichs liegen und das Modell nach dem Trainieren des Modells ein eindeutiges Ergebnis für die eindeutigen Eingabewerte erzeugt, wird das Problem als Regression bezeichnet. Als Bewertungsmethode werden Genauigkeit in der Klassifikation und R² in der Regression verwendet.

Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (5)

Den Daten wird das Ziel zugewiesen, das wie erwartet mit dem nächsten Datenpunkt in der Regression in knn übereinstimmt. Der K-Wert ist auch eine Hyperparameter-ähnliche Klassifizierung und wird vom Benutzer eingestellt. Als Beispiel für die Klassifizierung zeigt Abbildung 5, wie die Regression mit k=1 und k=3 in den Datensatz mit 40 Punkten aus der mglearn-Bibliothek importiert wird. Wie in der Figur zu sehen ist, wird, wenn eine Regression mit k = 1 durchgeführt wird, d. h. ein einzelner Nachbar knn, das Ziel der nächsten Daten als Ziel neuer Daten zugewiesen. Andererseits wird mit k = 3 die Vorhersage als Durchschnitt der 3 nächstgelegenen Datenpunkte gemacht.

Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (6)

Die Raten von R² des Testsatzes mit 6 verschiedenen k-Werten (von 1 bis 6) sind in Abbildung 6 dargestellt. Wie aus Abbildung ersichtlich, wird die minimale Rate mit 35% bei k=1 und die maximale Rate mit 83 . erreicht % bei k=3.

Im nächsten Beispiel wird ein Datensatz mit 1000 Punkten erstellt, deren x-Achse (von -3 bis 3) das Feature und die y-Achse das Ziel darstellt. Dieser Datensatz wird mit 3 verschiedenen k-Werten trainiert, die 1–3–9 sind, dann sind die Testergebnisse in Abbildung 7 dargestellt.

Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (7)

Fazit

Grundsätzlich gibt es im KNN-Algorithmus 2 wichtige Parameter, die vom Benutzer eingestellt werden müssen. Die Anzahl der Nachbarn (k) und wie Sie den Abstand zwischen Datenpunkten messen. Standardmäßig wird die euklidische Distanz verwendet, was in vielen Einstellungen gut funktioniert. Wenn sich jedoch der k-Wert ändert, kann die Messmethode vom Benutzer angepasst werden und unterschiedliche Ergebnisse erhalten werden. Letztes Wort, obwohl der Algorithmus der nächsten k-Nachbarn leicht zu verstehen ist, wird er in der Praxis nicht oft verwendet, da die Vorhersage langsam ist und viele Funktionen nicht verarbeitet werden können.

Richtlinie für maschinelles Lernen

Überwachtes Lernen — K Nearest Neighbours Algorithmus (KNN) (2024)
Top Articles
Latest Posts
Article information

Author: Duane Harber

Last Updated:

Views: 5811

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Duane Harber

Birthday: 1999-10-17

Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

Phone: +186911129794335

Job: Human Hospitality Planner

Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.