K-Nearest Neighbors (KNN)
Entdecken Sie, wie K-Nearest Neighbors (KNN) maschinelles Lernen mit seinem intuitiven, nichtparametrischen Ansatz für Klassifizierungs- und Regressionsaufgaben vereinfacht.
K-Nächste Nachbarn (KNN) ist ein nicht-parametrischer,
überwachter Lernalgorithmus, der häufig für
Klassifizierungs- und Regressionsaufgaben verwendet. Oft wird er als
als "fauler Lerner" oder instanzbasierte Lernmethode bezeichnet, erzeugt KNN während einer Trainingsphase keine diskriminierende Funktion aus den
den Trainingsdaten während einer Trainingsphase. Stattdessen,
Stattdessen speichert es den gesamten Datensatz und führt nur dann Berechnungen durch, wenn es Vorhersagen für neue Instanzen trifft. Dieser Ansatz
geht davon aus, dass ähnliche Datenpunkte im Merkmalsraum nahe beieinander liegen, so dass der Algorithmus
neue Eingaben auf der Grundlage der Mehrheitsklasse oder des Durchschnittswerts ihrer nächsten Nachbarn zu klassifizieren.
Wie KNN funktioniert
Der Funktionsmechanismus von K-Nächste Nachbarn beruht auf Abstandsmetriken zur Quantifizierung der Ähnlichkeit zwischen Daten
Punkten zu quantifizieren. Die häufigste Metrik ist der
Euklidische Distanz, aber auch andere wie
Manhattan-Distanz oder Minkowski-Distanz verwendet werden können
abhängig von der Problemdomäne. Der Vorhersageprozess umfasst mehrere verschiedene Schritte:
-
K auswählen: Der Benutzer legt die Anzahl der Nachbarn fest, die als "K" bezeichnet wird. Dies ist ein entscheidender Schritt bei der
Abstimmung der Hyperparameter, da der Wert von K
einen direkten Einfluss auf das Modell
Verzerrung-Varianz-Abgleich des Modells beeinflusst. Ein kleines K kann zu
zu Rauschempfindlichkeit führen, während ein großes K deutliche Grenzen glätten kann.
-
Berechnen von Entfernungen: Wenn ein neuer Abfragepunkt eingeführt wird, berechnet der Algorithmus den Abstand
zwischen diesem Punkt und jedem Beispiel im gespeicherten Datensatz.
-
Nachbarn identifizieren: Der Algorithmus sortiert die Abstände und wählt die obersten K Einträge mit den
kleinsten Werte.
-
Aggregierter Output:
-
Klassifizierung: Der Algorithmus ordnet das Klassenlabel zu, das am häufigsten unter den K
Nachbarn auftaucht (Mehrheitsentscheidung).
-
Regression: Die Vorhersage wird als Durchschnitt der Zielwerte der K
Nachbarn.
Die Einfachheit von KNN macht es zu einer effektiven Grundlage für viele
Probleme des maschinellen Lernens. Nachfolgend finden Sie ein kurzes
Beispiel mit der beliebten Bibliothek Scikit-learn, um einen
um einen grundlegenden Klassifizierungsablauf zu demonstrieren.
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])
# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])
Anwendungsfälle in der Praxis
Trotz seiner Einfachheit wird K-Nearest Neighbors in verschiedenen anspruchsvollen Bereichen eingesetzt, in denen Interpretierbarkeit und
Instanz-basierte Argumentation wertvoll sind.
-
Recommendation Engines: KNN erleichtert
kollaborative Filterung
in Empfehlungssystemen. Streaming
Streaming-Plattformen nutzen es, um Inhalte vorzuschlagen, indem sie Nutzer mit ähnlichen Sehgewohnheiten (Nachbarn) finden und ihnen
die ihnen gefallen haben. Diese Methode ist effektiv für personalisierte Nutzererfahrungen.
-
Medizinische Diagnose: Bei der
medizinischen Bildanalyse kann KNN bei der
bei der Diagnose von Krankheiten helfen, indem es Patientenmetriken oder Bildmerkmale mit einer Datenbank von historischen Fällen vergleicht. Für
kann es zum Beispiel helfen
Brustkrebstumore als
Brustkrebstumore als bösartig oder gutartig zu klassifizieren, basierend auf der Ähnlichkeit der Zellmerkmale mit bestätigten Fällen.
-
Erkennung von Anomalien: Finanzinstitute nutzen KNN für die
Anomalieerkennung, um Betrug zu erkennen. Durch
Analyse von Transaktionsmustern kann das System Aktivitäten aufzeigen, die erheblich vom Standardverhalten eines Nutzers abweichen
Verhalten abweichen - im Wesentlichen Punkte, die von ihren "nächsten Nachbarn" weit entfernt sind.
Unterscheidung zwischen KNN und verwandten Algorithmen
Das Verständnis der Unterschiede zwischen KNN und anderen Algorithmen ist entscheidend für die Auswahl des richtigen Werkzeugs für ein
Computer Vision oder Datenanalyse-Projekt zu wählen.
-
K-Means Clustering: KNN ist leicht zu verwechseln mit
K-Means Clustering zu verwechseln, da die Namen ähnlich sind.
K-Means ist jedoch eine
nicht überwachte Lerntechnik, die
gruppiert, während KNN ein überwachtes Verfahren ist, das für die Vorhersage markierte Daten benötigt.
-
Support-Vektor-Maschine (SVM): Während beide zur Klassifizierung verwendet werden, konzentriert sich eine
Stützvektormaschine (SVM) konzentriert sich
darauf, eine globale Entscheidungsgrenze (Hyperebene) zu finden, die die Spanne zwischen den Klassen maximiert. KNN hingegen trifft
Entscheidungen auf der Grundlage der lokalen Datendichte, ohne ein globales Modell zu erstellen. Weitere Informationen zu diesen Unterschieden finden Sie in der
SVM-Dokumentation.
-
Entscheidungsbäume: A
Entscheidungsbaum klassifiziert Daten durch Lernen expliziter,
hierarchische Regeln, die den Merkmalsraum aufteilen. KNN stützt sich ausschließlich auf Abstandsmetriken im Merkmalsraum, wodurch
Es ist flexibler bei unregelmäßigen Entscheidungsgrenzen, aber rechenintensiver bei der Inferenz.
Während KNN für kleinere Datensätze leistungsstark ist, steht es bei großen Daten
großen Datenmengen, da die Berechnung der Abstände für jede
Entfernungen für jede Abfrage. Für Hochleistungs,
Echtzeit-Inferenz bei Aufgaben wie
Objekterkennung, moderne Deep Learning
Architekturen wie YOLO11 aufgrund ihrer überragenden
überragenden Geschwindigkeit und Genauigkeit bevorzugt.