K-Nearest Neighbors (KNN)
Erkunde K-Nearest Neighbors (KNN). Lerne, wie dieser überwachte Lernalgorithmus für Klassifizierung und Regression funktioniert, sein Einsatz bei der visuellen Suche und Integration mit Ultralytics YOLO26.
K-Nearest Neighbors (KNN) ist ein robuster und intuitiver Algorithmus, der im Bereich des supervised learning sowohl für Klassifizierungs- als auch für Regressionsaufgaben verwendet wird. Durch seine Einfachheit zeichnet sich KNN oft als ein "fauler Lerner" (Lazy Learner) aus, da er während einer Trainingsphase kein Modell erstellt oder Parameter lernt. Stattdessen speichert er den gesamten training data-Satz und führt Berechnungen nur dann durch, wenn eine Vorhersage angefordert wird. Das Kernprinzip des Algorithmus beruht auf Merkmalsähnlichkeit: Er geht davon aus, dass Datenpunkte mit ähnlichen Attributen in unmittelbarer Nähe zueinander in einem mehrdimensionalen Merkmalsraum existieren.
Wie der Algorithmus funktioniert#
Der Mechanismus von K-Nearest Neighbors basiert auf Distanzberechnungen. Wenn ein neuer Abfragepunkt eingegeben wird, durchsucht der Algorithmus den gespeicherten Datensatz, um die „K“ Trainingsbeispiele zu finden, die dem neuen Input am nächsten liegen.
-
Entfernungsmessung: Das System berechnet den Abstand zwischen dem Abfragepunkt und jedem anderen Punkt in der Datenbank. Die gängigste Metrik ist die Euclidean distance, welche die geradlinige Entfernung zwischen Punkten misst. Andere Metriken wie die Manhattan distance (Taxicab-Geometrie) oder die Minkowski distance können je nach Datentyp verwendet werden.
-
Auswahl der Nachbarn: Nach der Berechnung der Distanzen sortiert der Algorithmus diese und identifiziert die top „K“ nächsten Einträge.
-
Entscheidungsfindung: - Für Klassifizierung: Der Algorithmus verwendet ein "Mehrheitswahlrecht"-System (Majority Voting). Das Klassenlabel, das am häufigsten unter den K Nachbarn vorkommt, wird dem Abfragepunkt zugewiesen. Dies wird häufig bei grundlegenden image classification-Aufgaben verwendet. - Für Regression: Die Vorhersage wird berechnet, indem die Werte der K nächsten Nachbarn gemittelt werden, um eine kontinuierliche Variable zu schätzen.
Die Wahl des richtigen „K“#
Die Auswahl des optimalen Wertes für 'K' ist ein kritischer Schritt beim hyperparameter tuning. Die Wahl von K beeinflusst maßgeblich die Leistung des Modells und seine Fähigkeit, auf neue Daten zu generalisieren.
- Niedriger K-Wert: Ein kleiner K (z. B. K=1) macht das Modell äußerst anfällig für Rauschen und Ausreißer in den Daten, was zu overfitting führen kann.
- Hoher K-Wert: Ein großes K glättet die Entscheidungsgrenzen, wodurch die Wirkung von Rauschen reduziert wird, aber möglicherweise unterschiedliche Muster verwischt werden, was zu underfitting führt.
Praxisanwendungen#
Trotz seiner Einfachheit im Vergleich zu tiefen neuronalen Netzen bleibt KNN in der modernen KI hochrelevant, insbesondere in Kombination mit fortgeschrittenen feature extraction-Techniken.
- Empfehlungssysteme: KNN ermöglicht collaborative filtering im Medien-Streaming und E-Commerce. Durch die Identifizierung von Nutzern mit ähnlichen Wiedergabe- oder Kaufverhaltensweisen (Nachbarn) können Plattformen Produkte vorschlagen, die ein Nutzer basierend auf den Vorlieben seiner "nächsten Nachbarn" voraussichtlich genießen wird.
- Anomalieerkennung: In der Cybersicherheit und im Finanzwesen wird KNN für die anomaly detection verwendet. Transaktionen oder Netzwerkaktivitäten werden in einem Merkmalsraum abgebildet; jeder neue Datenpunkt, der weit von den dichten Clustern "normaler" Aktivität entfernt liegt, wird als potenzieller Betrug oder Sicherheitsverstoß markiert.
- Visuelle Suche: Moderne vector search-Engines stützen sich häufig auf Approximate Nearest Neighbor (ANN)-Algorithmen – eine optimierte Variante von KNN –, um schnell ähnliche Bilder basierend auf hochdimensionalen embeddings abzurufen, die von Modellen wie YOLO26 generiert wurden.
Herausforderungen und Überlegungen#
Obwohl KNN effektiv ist, steht es vor dem curse of dimensionality. Wenn die Anzahl der Merkmale (Dimensionen) zunimmt, werden Datenpunkte dünn besetzt, und Distanzmetriken verlieren an Wirksamkeit. Da es alle Trainingsdaten speichert, kann KNN zudem speicherintensiv sein und bei großen Datensätzen unter hoher inference latency leiden. Um dies zu bewältigen, verarbeiten Praktiker Daten häufig mit dimensionality reduction-Techniken wie Principal Component Analysis (PCA) vor oder verwenden spezielle Datenstrukturen wie KD-Trees, um die Suche zu beschleunigen. Für eine Skalierung von Datensätzen und Modelltraining auf Unternehmensebene kann die Nutzung der Ultralytics Platform dabei helfen, die für die Vorverarbeitung komplexer Daten erforderlichen Rechenressourcen zu verwalten.
Unterscheidung von KNN und K-Means#
Es ist wichtig, K-Nearest Neighbors von K-Means clustering zu unterscheiden, da ihre ähnlichen Namen oft zu Verwirrung führen.
- KNN ist ein überwachter Lernalgorithmus, der gelabelte Daten verwendet, um Vorhersagen zu treffen.
- K-Means ist ein unsupervised learning-Algorithmus, der verwendet wird, um unbeschriftete Daten basierend auf strukturellen Ähnlichkeiten in Cluster zu gruppieren.
Implementierungsbeispiel#
Der folgende Code-Snippet demonstriert einen einfachen KNN-Klassifizierungsworkflow unter Verwendung der beliebten Scikit-learn-Bibliothek. In einem Computer-Vision-Kontext würden die Eingabe-"Merkmale" typischerweise von einem Deep-Learning-Modell wie YOLO26 extrahiert, bevor sie an den KNN-Klassifizierer ü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)")





