Einführung in den KNN-Algorithmus

K Der Algorithmus von Nearest Neighbour, bekannt als KNN, ist der grundlegende Algorithmus für maschinelles Lernen. Das Verständnis dieses Algorithmus ist ein sehr guter Ausgangspunkt für das Erlernen des maschinellen Lernens, da die Logik hinter diesem Algorithmus in vielen anderen Modellen des maschinellen Lernens enthalten ist. K Der Algorithmus von Nearest Neighbour fällt unter den Klassifizierungsteil des überwachten Lernens.

Was ist betreutes Lernen?

Der überwachte Lernalgorithmus ist eine Art von Algorithmus, bei dem das Lernen auf einer beschrifteten Eingabe beruht und basierend auf der Funktion Vorhersagen getroffen werden, wenn nicht beschriftete Daten bereitgestellt werden. Wie wir verstanden haben, was überwachtes Lernen ist, lassen Sie uns sehen, was Klassifikation ist. Der Klassifikationsalgorithmus gibt einen diskreten Wert als Ausgabe und keine kontinuierlichen Werte.

Wie funktioniert der KNN-Algorithmus?

K Nearest Neighbors (Nächste Nachbarn) ist ein grundlegender Algorithmus, der alle verfügbaren Daten speichert und die Klassifizierung unbeschrifteter Daten anhand eines Ähnlichkeitsmaßes vorhersagt. In der linearen Geometrie identifizieren wir das Ähnlichkeitsmaß, indem wir den Abstand zwischen den Punkten berechnen, wenn zwei Parameter im kartesischen 2D-System aufgetragen werden. Gleiches gilt hier, KNN-Algorithmus geht davon aus, dass ähnliche Dinge in unmittelbarer Nähe existieren, einfach können wir in die gleichen Dinge setzen, die nahe beieinander bleiben.

Beispiel: Wenn der geplottete Datensatz so aussieht, wird zum Klassifizieren dieser Datenpunkte zuerst der Abstand zwischen den Punkten ermittelt und geprüft, ob sie ähnlich sind oder nicht.

In der Geometrie nach Euklid kann die Abstandsfunktion durch die folgende Gleichung berechnet werden:

Wenn K = 1 ist, wird der Fall einfach einer Klasse seines nächsten Nachbarn zugeordnet (Wir verwenden in fast allen Situationen in der Mathematik „1“. Wir können den Wert von K ändern, während wir die Modelle in maschinellem Lernen trainieren, und wir werden es tun diskutieren Sie dies weiter im Artikel) X und Y sind die Werte auf den Koordinatenachsen.

Wenn wir hier bemerken, sind alle Entfernungsmaße, die wir erhalten, stetige Variablen, aber wir benötigen diskrete Werte, während wir die Klassifizierung durchführen. Um dies zu erreichen, müssen wir die Hamming-Entfernung verwenden.

Diese Gleichung bringt uns auch die Standardisierung numerischer Werte zwischen 0 und 1, wenn der Datensatz eine Mischung aus numerischen und kategorialen Werten enthält.

X Y. Entfernung
Mit Krebs Mit Krebs X = Y → D = 0
Ohne Krebs Ohne Krebs X! = Y → D = 1

Auf diese Weise funktioniert der Algorithmus und nun wollen wir untersuchen, wie wir den Wert von K in KNN wählen.

Auswahl des K-Werts im KNN-Algorithmus

Bevor wir sehen, welche Faktoren bei der Auswahl des K-Werts zu berücksichtigen sind, müssen wir verstehen, wie der Wert von K den Algorithmus beeinflusst.

Dies sind die Diagramme desselben Datensatzes mit unterschiedlichen K-Werten. Der K-Wert ist 1 für das Diagramm in der linken oberen Ecke und der höchste für das Diagramm in der rechten unteren Ecke. Wenn wir sorgfältig untersuchen, können wir verstehen, dass die Grenze des Klassifizierungsalgorithmus glatt wird, wenn der Wert von K zunimmt. Das heißt, der Wert von K ist direkt proportional zur Glätte der Grenze. Wenn also der K-Wert auf 1 gesetzt ist, passt das Trainingsmodell die Daten über, und wenn der K-Wert auf eine große Zahl gesetzt ist, passt es die Daten unter. Um einen optimalen Wert für K zu wählen, müssen wir den Validierungsfehler mit mehreren K-Werten prüfen und einen mit dem minimalen Fehler auswählen.

Schritte zum Implementieren des KNN-Algorithmus in Python

Bisher haben wir hier den theoretischen Teil des Algorithmus von K Nearest Neighbour kennengelernt. Lassen Sie uns nun anhand der Implementierung in Python einen praktischen Einblick gewinnen.

Schritt 1: Importieren von Bibliotheken

Im Folgenden wird das Importieren der Bibliotheken gezeigt, die zum Ausführen von KNN erforderlich sind.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Schritt 2: Importieren des Datensatzes

Hier sehen wir, wie der Datensatz importiert wird.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Schritt 3: Datensatz teilen

Der nächste Schritt ist die Aufteilung unseres Datensatzes in Test- und Zugsplit.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Hinweis: Der Datensatz, den ich zum Demonstrieren verwende, wurde mit der Definition der X- und Y-Werte vorverarbeitet. Wenn dies nicht zuerst gemacht wird, muss es gemacht werden, denn während das Klassifizierungsmodell trainiert wird, müssen wir beschriftete Daten übergeben, um Entfernungen zu berechnen.

Schritt 4: Trainingsmodell

In diesem Schritt sehen wir uns ein Modelltraining an.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Hinweis: Hier verwenden wir den K-Nachbarn-Klassifikator, der aus der Modulbibliothek sklearn.neighbours importiert wurde.

Schritt 5: Vorhersagen ausführen

Ausführen von Vorhersagen für die Testaufteilungsdaten.

y_pred = classifier.predict(X_test)

Schritt 6: Überprüfen Sie die Validierung

Der nächste Schritt besteht darin, den Algorithmus auszuwerten und den Validierungsfehler zu überprüfen, erneut mit einem anderen K-Wert auszuführen und den k-Wert zu berücksichtigen, bei dem der minimale Validierungsfehler erhalten wird. Auf diese Weise können wir den K Nearest Neighbors-Klassifikator praktisch implementieren. Es gibt mehrere Möglichkeiten, diesen Algorithmus zu implementieren. Dies ist nur eine davon. In diesem Artikel habe ich die Schritte kurz beschrieben, da unsere Hauptagenda darin besteht, die Funktionsweise des Algorithmus zu verstehen.

Fazit

Wie bereits erwähnt, ist der K-Nearest-Neighbors-Algorithmus einer der einfachsten und einfachsten zur Klassifizierung verwendeten Algorithmen. Basierend auf der Funktionsweise fällt es auch unter den „Lazy Learning Algorithmus“. Im Allgemeinen ist der K-Wert, den jeder beim Trainieren des Modells übergibt, eine ungerade Zahl, aber dies ist kein Zwang. Es gibt jedoch auch einige Nachteile, wenn Sie KNN verwenden

  • Es passt nicht gut zu den kategorialen Daten, weil wir den Abstand zwischen zwei kategorialen Merkmalen nicht finden können.
  • Es funktioniert auch nicht gut mit hochdimensionalen Daten, da es für den Algorithmus schwierig sein wird, den Abstand in jeder Dimension zu berechnen.

Wenn wir derzeit feststellen, dass die meisten Anwendungsfälle des maschinellen Lernens von dem Klassifizierungsalgorithmus auf der Basisebene umgeben sind, spielt KNN eine wichtige Rolle in der Welt des maschinellen Lernens.

Empfohlene Artikel

Dies ist eine Anleitung zum KNN-Algorithmus. Hier diskutieren wir die Einführung und Arbeitsweise des K Nearest Neighbors-Algorithmus mit Schritten zur Implementierung des kNN-Algorithmus in Python. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Wie funktioniert der SVM-Algorithmus?
  2. MD5-Algorithmus (Vor- und Nachteile)
  3. K - bedeutet Clustering-Algorithmus
  4. Arten des Verstärkungslernens
  5. Komplette Anleitung zum C ++ Algorithmus

Kategorie: