Dieser maschinell lernende Algorithmus ist leicht und einfach zu verstehen. Sie können Regressions- und Klassifikationsprobleme mit Methoden des maschinellen Lernens lösen. Um das Konzept des K-nächsten Nachbarn zu verstehen, müssen Sie zunächst wissen, wie ein überwachtes maschinelles Lernverfahren funktioniert. Beim überwachten Lernen versehen Sie das Modell mit beschrifteten Daten. Die Maschine analysiert dann die beschrifteten Daten und gibt eine geeignete Ausgabe aus.
Wenn Kinder zum Beispiel jung sind, brauchen sie Aufsicht, um den Unterschied zwischen verschiedenen Farben, Tieren, Alphabeten usw. zu verstehen. Sie beschriften alle Gegenstände für sie, damit sie sie schnell identifizieren können. So funktioniert betreutes maschinelles Lernen. Dieses Lernen hilft bei der Lösung von Klassifizierungsproblemen. Bei dieser Art von Problemen sagen Sie den Wert der Eingabedaten voraus, und dann ordnet der Algorithmus die Werte in verschiedene Klassen auf der Grundlage des Gewichts der Funktionen und ihrer Eingabemerkmale ein.


K-Nächste Nachbarn

Um die Regression und Klassifikation zu lösen, können Sie diesen Algorithmus für die Methode des überwachten maschinellen Lernens verwenden. KNN beinhaltet keine Lernphase. Sie berechnen die prädiktive Methode nicht wie eine lineare oder logistische Regression. Dieser Algorithmus findet die Ähnlichkeiten zwischen den Variablen. Sie messen, wie nah oder entfernt die Variablen auf der Grundlage der angegebenen Daten sind. Mit einfachen Worten: Dieser Algorithmus geht davon aus, dass die Ähnlichkeiten umso größer sind, je näher die Dinge beieinander liegen.


Wie der KNN-Algorithmus funktioniert

Sie müssen die folgende Methode befolgen, um den K-Nearest Neighbor-Algorithmus (für Python) richtig zu implementieren

Laden Sie die Eingabe oder Daten aus dem Datensatz auf die Maschine

Ändern Sie den Wert von K aus den Variablen

Berechnen Sie den Abstand der Variablen in Bezug auf jedes Beispiel der Daten.

Fügen Sie nun den Abstand in einer geordneten Form hinzu

Sortieren Sie nun die geordnete Sammlung in aufsteigender Reihenfolge auf der Grundlage ihrer Entfernung.

Wählen Sie das K aus der Sammlung aus

Nun finden Sie die Bezeichnungen dieses K-Wertes

Wenn es sich um eine Regression handelt, müssen Sie den Mittelwert des Labels “K” zurückgeben.

Wenn es sich um die Klassifikation handelt, dann müssen Sie den Modus des Labels “K” zurückgeben.

Implementierung der Kodierung auf


fromcollections importZähler
Importmathematik defknn(Daten, Abfrage, k, Abstand_fn, Wahl_fn):
nachbar_entfernungen_und_indizes = []
3. Für jedes Beispiel in den Daten für Index, Beispiel inenumerate(data):
3.1 Berechnen Sie den Abstand zwischen dem Abfragebeispiel und der aktuellen Beispiel aus den Daten. Abstand =Abstand_fn(Beispiel[:-1], Abfrage)
3.2 Den Abstand und den Index des Beispiels zu einer geordneten Sammlung hinzufügen nachbar_entfernungen_und_indizes.append((entfernung, index))
4. Sortieren Sie die geordnete Sammlung von Entfernungen und Indizes von kleinste bis größte (in aufsteigender Reihenfolge) nach den Abständen sorted_neighbor_distances_and_indices =sorted(neighbor_distances_and_indices)
5. Wählen Sie die ersten K-Einträge aus der sortierten Sammlung k_nächste_Entfernungen_und_Indizes = sortierte_Nachbar_Entfernungen_und_Indizes[:k]
6. Ermitteln der Beschriftungen der ausgewählten K-Einträge k_nächste_Etiketten = [Daten[i][1] für Entfernung, i in k_nächste_Entfernungen_und_Indizes]
7. Falls Regression (choice_fn = Mittelwert), geben Sie den Mittelwert der K-Labels
8. Wenn Klassifizierung (choice_fn = Modus), geben Sie den Modus der K-Etiketten Rückgabe k_nächste_Entfernungen_und_Indizes , choice_fn(k_nächste_Etiketten) defmean(etiketten):
returnsum(etiketten) /len(etiketten) defmode(Beschriftungen):
returnCounter(labels).most_common(1)[0][0] defeuclidean_distance(Punkt1, Punkt2):
Summe_Quadrat_Entfernung =0
für i inrange(len(Punkt1)):
Summe_Quadrat_Abstand += math.pow(Punkt1[i] – Punkt2[i], 2)
Rückgabe math.sqrt(Summe_Quadrat_Entfernung) defmain():
”’
# Regressionsdaten
#
# Spalte 0: Höhe (Zoll)
# Spalte 1: Gewicht (Pfund)
”’
reg_data = [
[65.75, 112.99],
[71.52, 136.49],
[69.40, 153.03],
[68.22, 142.34],
[67.79, 144.30],
[68.70, 123.30],
[69.80, 141.49],
[70.01, 136.46],
[67.90, 112.37],
[66.49, 127.45],
] Frage: Angesichts der Daten, die uns vorliegen, was ist die beste Schätzung des Gewichts einer Person, wenn sie 60 Zoll gross ist? reg_query = [60] reg_k_nächste_Nächste_Nachbarn, reg_prediction =knn( reg_data, reg_query, k=3, distance_fn=euklidische_Entfernung, choice_fn=Mittel ) ”’
# Klassifizierungsdaten
#
# Spalte 0: Alter
# Spalte 1: mag Ananas
”’
clf_data = [
[22, 1],
[23, 1],
[21, 1],
[18, 1],
[19, 1],
[25, 0],
[27, 0],
[29, 0],
[31, 0],
[45, 0],
] Frage: Passt das nicht spezifizierte M&M angesichts der uns vorliegenden Daten in den Satz der roten oder grünen M&M? clf_abfrage = [33] clf_k_nächste_Nachbarn, clf_Vorhersage =knn( clf_daten, clf_abfrage, k=3, entfernung_fn=euklidische_entfernung, wahl_fn=modus ) wenn name ==’hauptsächlich‘:
Haupt()

Verstehen mit dem Beispiel

Lassen Sie uns nun die obigen Schritte in einfachen Worten verstehen. Stellen Sie sich vor, es befinden sich grüne und rote M&Ms auf einem Teller. Hier finden Sie ein weiteres M&M, von dem Sie die Klasse nicht kennen. Um die Klasse zu finden, müssen Sie einen Wert von K setzen. Nehmen wir an, in dieser Bedingung wäre K = 4. Nun werden Sie einen Kreis um das nicht identifizierte M&M so zeichnen, dass der Mittelpunkt des Kreises das M&M selbst ist und nur die vier anderen M&Ms im Kreis liegen. Nun werden wir prüfen, von welcher Klasse von M&Ms der Kreis mehr hat. Nehmen wir an, es gäbe vier rote M&M, dann betrachten wir die nicht identifizierten M&M als eine rote Klasse.


Wann können Sie den KNN-Algorithmus verwenden?

Sie können den K-Nearest Neighbor Algorithmus verwenden, um das Regressions- oder Klassifizierungsproblem zu lösen. Viele Branchen verwenden dieses überwachte maschinelle Lernsystem für Klassifizierungsprobleme. Hier sind drei wichtige Faktoren bei der Bewertung jeder Technik

Wie einfach können Sie die Ausgabe interpretieren?

Wie können Sie die Ausgabe berechnen?

Was ist die Vorhersagekraft?
KNN eignet sich perfekt für alle oben genannten Parameter zur Messung einer Technik. Die KNN-Technik findet jedoch häufig Anwendung, da sie leicht zu interpretieren und die Ausgangszeit zu berechnen ist.


Wie kann man den K-Wert wählen?

Um den besten K-Wert zu finden, müssen wir den Algorithmus viele Male laufen lassen und prüfen, welche Zahl die Fehler reduziert, und trotzdem die Fähigkeit des Algorithmus beibehalten und Vorhersagen machen. Hier sind einige der Dinge, die Sie im Auge behalten müssen:

Das erste, was Sie nicht tun sollten, ist, einen als K-Wert auszuwählen. Wenn Sie einen als K-Wert auswählen, erhalten wir instabile Vorhersagen. Zum Beispiel, wenn wir die Klasse eines M&Ms finden müssen, die vollständig von roten M&Ms umgeben ist, aber nur ein grünes M&M in der Nähe des nicht identifizierten M&Ms liegt. In diesem Zustand werden wir denken, dass der Abfragepunkt grün ist, so dass unsere Vorhersage falsch sein wird.

Wenn wir den K-Wert erhöhen, werden wir sehen, dass die Vorhersage wegen der Mehrheit der Wähler stabil wird. Wenn wir jedoch mehr Fehler finden, gehen wir zu weit vom K-Wert weg.

Wenn zwischen den Vorhersagen ein Gleichstand besteht, müssen wir die ungerade Zahl wählen.
Die Wahl des K-Wertes hängt von dem Datensatz ab, den Sie zu verwenden versuchen. Sie sollten jedoch wissen, dass wir umso genauere Ergebnisse erhalten, je mehr Nachbarn wir hinzufügen.


Schlussfolgerung


In diesem Artikel haben wir versucht, ein grundlegendes und leicht verständliches Konzept des K-Nearest Neighbor-Algorithmus bereitzustellen. Wir erfuhren, dass KNN bei der Vorhersage der Klassifikation mit dem gegebenen Datensatz hilft. Dies ist eine einfache und schnelle Methode zur Berechnung.