K-Nearest Neighbors (KNN)
Entdecke K-Nearest Neighbors (KNN). Erfahre, wie dieser Algorithmus des überwachten Lernens für Klassifizierung und Regression funktioniert, in der visuellen Suche eingesetzt wird und sich in Ultralytics YOLO26 integrieren lässt.
K-nächste Nachbarn (KNN) ist ein robustes und intuitives Verfahren aus dem Bereich des überwachten Lernens, das sowohl für Klassifikations- als auch für Regressionsaufgaben eingesetzt wird. Aufgrund seiner Einfachheit wird KNN häufig als „trä-ges Lernen“ bezeichnet, da während einer Trainingsphase weder ein Modell erstellt noch Parameter gelernt werden. Stattdessen merkt sich das Verfahren den gesamten Datensatz der Trainingsdaten und führt Berechnungen erst dann durch, wenn eine Vorhersage angefordert wird. Das Grundprinzip des Verfahrens beruht auf der Ähnlichkeit von Merkmalen: Es geht davon aus, dass Datenpunkte mit ähnlichen Eigenschaften in einem mehrdimensionalen Merkmalsraum nahe beieinander liegen.
Funktionsweise des Verfahrens#
Der Mechanismus von K-nächste Nachbarn basiert auf Entfernungsberechnungen. Wenn ein neuer Abfragepunkt eingeführt wird, durchsucht das Verfahren den gespeicherten Datensatz, um die „K“ Trainingsbeispiele zu finden, die dem neuen Eingangswert am nächsten liegen.
-
Entfernungsmessung: Das System berechnet die Entfernung zwischen dem Abfragepunkt und jedem anderen Punkt in der Datenbank. Das gängigste Maß ist die euklidische Distanz, die die direkte Entfernung zwischen Punkten misst. Je nach Datentyp können auch andere Maße wie die Manhattan-Distanz (Taxigeometrie) oder die Minkowski-Distanz verwendet werden.
-
Auswahl der Nachbarn: Nach der Berechnung der Entfernungen sortiert das Verfahren diese und ermittelt die 'K' nächstgelegenen Einträge.
-
Entscheidungsfindung: - Bei der Klassifikation: Das Verfahren verwendet ein System der „Mehrheitsentscheidung“. Dem Abfragepunkt wird das Klassenlabel zugewiesen, das unter den K Nachbarn am häufigsten vorkommt. Dies wird häufig bei grundlegenden Aufgaben der Bildklassifikation eingesetzt. - Bei der Regression: Die Vorhersage wird berechnet, indem der Mittelwert der K nächstgelegenen Nachbarn gebildet wird, um eine kontinuierliche Variable zu schätzen.
Das richtige 'K' wählen#
Die Auswahl des optimalen Werts für 'K' ist ein entscheidender Schritt bei der Abstimmung von Hyperparametern. Die Wahl von K beeinflusst die Leistung des Modells und seine Fähigkeit, auf neue Daten zu generalisieren, erheblich.
- Niedriger K-Wert: Ein kleiner K-Wert (z. B. K=1) macht das Modell sehr empfindlich gegenüber Rauschen und Ausreißern in den Daten, was zu Überanpassung führen kann.
- Hoher K-Wert: Ein großer K-Wert glättet die Entscheidungsgrenzen und verringert den Einfluss von Rauschen, kann jedoch deutliche Muster verwischen, was zu Unteranpassung führt.
Anwendungen in der Praxis#
Trotz seiner Einfachheit im Vergleich zu tiefen neuronalen Netzen bleibt KNN in der modernen KI hochrelevant, insbesondere in Kombination mit fortgeschrittenen Verfahren zur Merkmalsextraktion.
- Empfehlungssysteme: KNN ermöglicht kollaboratives Filtern bei Streaming-Angeboten und im E-Commerce. Indem Plattformen Nutzer mit ähnlichen Wiedergabeverläufen oder Kaufverhalten (Nachbarn) identifizieren, können sie Produkte empfehlen, die einem Nutzer wahrscheinlich gefallen, basierend auf den Präferenzen seiner „nächsten Nachbarn“.
- Anomalieerkennung: In der Cybersicherheit und im Finanzwesen wird KNN zur Anomalieerkennung eingesetzt. Transaktionen oder Netzwerkaktivitäten werden in einem Merkmalsraum abgebildet; jeder neue Datenpunkt, der weit von den dichten Clustern „normaler“ Aktivitäten entfernt liegt, wird als möglicher Betrug oder Sicherheitsverstoß gekennzeichnet.
- Visuelle Suche: Moderne Vektorsuch-Systeme verwenden häufig Algorithmen für approximative nächste Nachbarn (ANN) – eine optimierte Variante von KNN –, um ähnliche Bilder anhand hochdimensionaler Einbettungen, die von Modellen wie YOLO26 erzeugt werden, schnell abzurufen.
Herausforderungen und Überlegungen#
Obwohl KNN effektiv ist, steht es vor dem Fluch der Dimensionalität. Mit zunehmender Anzahl der Merkmale (Dimensionen) werden Datenpunkte dünn verteilt, und Entfernungsmaße verlieren ihre Wirksamkeit. Da KNN außerdem alle Trainingsdaten speichert, kann es speicherintensiv sein und bei großen Datensätzen eine hohe Inferenzlatenz aufweisen. Um dies zu bewältigen, verarbeiten Fachleute Daten häufig vor, indem sie Verfahren zur Dimensionsreduktion wie die Hauptkomponentenanalyse (PCA) einsetzen oder spezielle Datenstrukturen wie KD-Bäume verwenden, um die Suche zu beschleunigen. Für die Skalierung von Datensätzen und das Training von Modellen auf Unternehmensebene kann die Nutzung der Ultralytics Platform dabei helfen, die für die Vorverarbeitung komplexer Daten erforderlichen Rechenressourcen zu verwalten.
KNN und K-Means unterscheiden#
Es ist wichtig, K-nächste Nachbarn von K-Means-Clustering zu unterscheiden, da ihre ähnlichen Bezeichnungen häufig zu Verwechslungen führen.
- KNN ist ein überwachtes Lernverfahren, das beschriftete Daten verwendet, um Vorhersagen zu treffen.
- K-Means ist ein unüberwachtes Lernen-Verfahren, das unbeschriftete Daten anhand struktureller Ähnlichkeiten in Cluster gruppiert.
Implementierungsbeispiel#
Der folgende Codeausschnitt zeigt einen einfachen KNN-Klassifikationsablauf mit der beliebten Bibliothek Scikit-learn. Im Kontext der Bildverarbeitung würden die Eingabe-„Merkmale“ typischerweise von einem Deep-Learning-Modell wie YOLO26 extrahiert, bevor sie an den KNN-Klassifikator übergeben werden.
from sklearn.neighbors import KNeighborsClassifier
# Simulated feature vectors (e.g., extracted from YOLO26) and labels
# Features: [Size, Redness], Labels: 0=Apple, 1=Orange
features = [[0.8, 0.9], [0.9, 0.8], [0.2, 0.3], [0.3, 0.2]]
labels = [0, 0, 1, 1]
# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(features, labels)
# Predict the class of a new object [Size=0.85, Redness=0.85]
prediction = knn.predict([[0.85, 0.85]])
print(f"Predicted Class: {prediction[0]} (0=Apple, 1=Orange)")








