Glossar

K-Nächste Nachbarn (KNN)

Entdecke, wie K-Nearest Neighbors (KNN) das maschinelle Lernen mit seinem intuitiven, nicht-parametrischen Ansatz für Klassifizierungs- und Regressionsaufgaben vereinfacht.

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

K-Nächste Nachbarn (KNN) ist ein grundlegender Algorithmus im maschinellen Lernen (ML), der sowohl für Klassifizierungs- als auch für Regressionsaufgaben verwendet wird. Er zeichnet sich durch seine Einfachheit und seinen intuitiven Ansatz aus, was ihn zu einem hervorragenden Ausgangspunkt für das Verständnis des instanzbasierten Lernens macht. KNN wird als nicht-parametrisches Verfahren eingestuft, weil es keine Annahmen über die zugrunde liegende Datenverteilung macht. Er wird auch als"fauler Lernalgorithmus" bezeichnet, weil er während der Trainingsdatenphase kein allgemeines Modell aufbaut, sondern den gesamten Datensatz speichert und nur dann Berechnungen durchführt, wenn eine Vorhersage erforderlich ist.

Wie KNN funktioniert

Der Kerngedanke hinter KNN basiert auf Ähnlichkeit, die oft mit Hilfe von Abstandsmetriken wie dem euklidischen Abstand definiert wird. Bei der Vorhersage eines neuen, ungesehenen Datenpunkts ermittelt der Algorithmus die "K" nächstgelegenen Datenpunkte (Nachbarn) aus dem gespeicherten Trainingsdatensatz. Der Wert "K" ist eine benutzerdefinierte Ganzzahl und steht für die Anzahl der berücksichtigten Nachbarn.

Bei der Klassifizierung wird der neue Punkt der Klasse zugeordnet, die unter seinen K Nachbarn am häufigsten vorkommt (Mehrheitsentscheidung). Bei der Regression ist die Vorhersage normalerweise der Durchschnittswert der K Nachbarn. Die Wahl der Distanzmetrik (z. B. Manhattan, Minkowski) und der Wert von "K" sind entscheidende Hyperparameter, die die Leistung des Modells erheblich beeinflussen. Für eine effiziente Umsetzung werden oft Datenstrukturen wie KD-Bäume oder Ballbäume verwendet, um die Nachbarschaftssuche zu beschleunigen, insbesondere bei größeren Datensätzen.

Auswahl des Wertes von "K

Die Wahl des optimalen "K" ist entscheidend. Ein kleiner "K"-Wert (z. B. K=1) macht das Modell sehr empfindlich für Rauschen und Ausreißer in den Daten, was zu einer Überanpassung führen kann, bei der das Modell in den Trainingsdaten gut, in den ungesehenen Daten aber schlecht abschneidet. Umgekehrt kann ein großer 'K'-Wert die Entscheidungsgrenzen zu sehr glätten, wodurch das Modell weniger empfindlich auf lokale Muster reagiert und möglicherweise zu einer Unteranpassung und hohen Rechenkosten bei der Vorhersage führt. Techniken wie die Kreuzvalidierung (siehe Scikit-learn Cross-validation Guide) werden häufig eingesetzt, um einen geeigneten K-Wert zu finden, der den Kompromiss zwischen Verzerrung und Varianz ausgleicht. Die Scikit-learn-Bibliothek bietet Werkzeuge für die Implementierung von KNN und die Suche nach Hyperparametern, und allgemeine Tipps findest du im Ultralytics Hyperparameter Tuning Guide.

Anwendungen von KNN

Die Einfachheit von KNN eignet sich für verschiedene Anwendungen, insbesondere dort, wo es auf die Interpretierbarkeit ankommt:

Vorteile und Nachteile von KNN

KNN bietet einige Vorteile, hat aber auch seine Grenzen:

Vorteile:

  • Einfachheit und Interpretierbarkeit: Die Logik der Vorhersage auf der Grundlage von Nachbarn ist leicht zu verstehen und zu erklären.
  • Keine explizite Ausbildungsphase: Passt sich schnell an neue Daten an, da das Modell nicht neu trainiert werden muss, sondern nur Datenpunkte hinzugefügt werden.
  • Flexibilität: Natürlich beherrscht er die Mehrklassen-Klassifikation und kann für die Regression angepasst werden.

Nachteile:

KNN vs. Verwandte Konzepte

Es ist wichtig, KNN von anderen Algorithmen zu unterscheiden:

  • K-Means Clustering: K-Means ist ein unüberwachter Lernalgorithmus, mit dem Daten aufgrund ihrer Ähnlichkeit in K Cluster eingeteilt werden. KNN ist ein überwachter Lernalgorithmus, der zur Klassifizierung oder Regression auf der Grundlage von markierten Nachbarn verwendet wird.
  • Support Vector Machine (SVM): SVM ist ein überwachter Algorithmus, der eine optimale Hyperebene zur Trennung der Klassen findet. KNN klassifiziert auf der Grundlage der lokalen Ähnlichkeit der Nachbarn, während SVM nach einer globalen optimalen Grenze sucht. Erfahre mehr auf der Scikit-learn SVM Seite.
  • Entscheidungsbäume: Entscheidungsbäume klassifizieren Daten, indem sie eine Reihe von hierarchischen Regeln lernen, die eine baumartige Struktur bilden. KNN verwendet abstandsbasierte Ähnlichkeit, während Entscheidungsbäume merkmalsbasierte Aufteilungen verwenden. Weitere Informationen findest du auf der Seite Scikit-learn Decision Trees.

Während KNN für bestimmte Aufgaben und das Verständnis grundlegender ML-Konzepte wertvoll ist, profitieren komplexe Probleme wie die Objekterkennung in Echtzeit oft von fortschrittlicheren Modellen wie Ultralytics YOLOdie vor allem bei großen Bildverarbeitungsdatensätzen eine höhere Geschwindigkeit und Leistung bieten. Du kannst solche Modelle mit Plattformen wie Ultralytics HUB trainieren und einsetzen.

Alles lesen