Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

K-Means-Clustering

Lernen Sie K-Means Clustering kennen, einen wichtigen Algorithmus für unüberwachtes Lernen, um Daten in Clustern zu gruppieren. Entdecken Sie den Prozess, die Anwendungen und Vergleiche!

K-Means Clustering ist ein weit verbreiteter Algorithmus auf dem Gebiet des unüberwachten Lernens, der dazu dient, einen Datensatz in verschiedene, sich nicht überschneidende Untergruppen zu unterteilen. Im breiteren Kontext des maschinellen Lernens (ML) ist diese Methode wesentlich für die Entdeckung verborgener Muster und Strukturen in unbeschrifteten Daten. Der Algorithmus organisiert die Datenpunkte in eine Anzahl von $K$ Clustern, wobei jeder Punkt zu dem Cluster mit dem nächstgelegenen Mittelwert gehört und als Prototyp der Gruppe dient. der Gruppe dient. Dieser Ansatz hilft bei der Minimierung der Varianz innerhalb jedes Clusters und stellt sicher, dass die Datenpunkte in derselben Gruppe so ähnlich wie möglich sind. Gruppe so ähnlich wie möglich sind, während verschiedene Gruppen unterschiedlich bleiben.

Wie der Algorithmus funktioniert

Der Prozess von K-Means ist iterativ und beginnt mit der Auswahl von $K$ anfänglichen Zentroiden, die als Mittelpunkt Zentren für die Cluster dienen. Diese Zentroide können nach dem Zufallsprinzip oder mit Hilfe intelligenter Initialisierungstechniken ausgewählt werden, wie k-means++ Initialisierung um die Konvergenzgeschwindigkeit zu verbessern. Der Algorithmus durchläuft dann zwei primäre Schritte, bis sich die Ergebnisse stabilisieren:

  1. Zuweisung: Jeder Datenpunkt in den Trainingsdaten wird dem nächstgelegenen Zentroid zugewiesen basierend auf einer Abstandsmetrik, typischerweise dem Euklidischen Abstand. Dieser Schritt gruppiert die Daten in $K$ Clustern.
  2. Aktualisierung: Der neue Schwerpunkt für jeden Cluster wird berechnet, indem der Mittelwert aller Datenpunkte die diesem spezifischen Cluster zugeordnet sind.

Dieser Zyklus wird so lange wiederholt, bis sich die Zentren nicht mehr signifikant bewegen, was bedeutet, dass der Algorithmus konvergiert hat. Die Bestimmung der optimalen Anzahl von Clustern ist ein kritischer Teil des Prozesses, der oft mit Techniken wie der Ellenbogen-Methode oder durch Analyse der Silhouette-Wert um den Trennungsabstand zwischen den resultierenden Clustern zu messen.

Real-World-Anwendungen in AI

K-Means Clustering ist vielseitig und findet in verschiedenen Branchen Anwendung für für Data-Mining- und Analyseaufgaben.

  • Kundensegmentierung: Unternehmen nutzen Clustering, um Kunden aufgrund ihres Kaufverhaltens Kaufverhalten, demografischen Merkmalen oder dem Surfverhalten zu gruppieren. Durch die Identifizierung verschiedener Gruppen können Unternehmen ihre Marketing Marketingstrategien anpassen, ähnlich wie KI im Einzelhandel die Kundenansprache und Bestandsmanagement verbessert.
  • Bildkomprimierung: Auf dem Gebiet der Computer Vision (CV) wird K-Means für die Farbquantisierung eingesetzt. Diese Technik reduziert die Anzahl der eindeutigen Farben in einem Bild durch Clustering der Pixelwerte, effektiv durchgeführt Dimensionalitätsreduktion bei gleichzeitiger während die visuelle Integrität des Bildes erhalten bleibt.
  • Erkennung von Anomalien: Durch Lernen der Struktur normaler Datencluster können Systeme Ausreißer erkennen die weit von einem Schwerpunkt entfernt sind. Dies ist wertvoll für Sicherheitsanwendungen und Erkennung von Anomalien im Netzwerkverkehr.

K-Means in der Objekterkennungsgeschichte

Während moderne Objektdetektoren wie Ultralytics YOLO11 häufig fortschrittliche Regressionstechniken oder ankerfreie Köpfe verwenden, spielte K-Means eine zentrale Rolle bei der Entwicklung von Erkennungsmodelle. Frühere Iterationen, wie YOLOv2 bis YOLOv5, verwendeten K-Means-Clustering auf den Bounding-Box Dimensionen des COCO zur Bestimmung optimaler Ankerboxen. Diese vorberechneten Anker lieferten das Modell mit besseren Priors für die Vorhersage von Objektformen, was die Stabilität des Trainings und die Wiedererkennung deutlich verbesserte.

K-Means vs. K-Nächste Nachbarn (KNN)

Es ist üblich, K-Means zu verwechseln mit K-Nächste Nachbarn (KNN) verwechselt, aber sie dienen grundlegend unterschiedlichen Zwecken.

  • K-Means ist ein unüberwachter Algorithmus, der für das Clustering verwendet wird. Er benötigt Er benötigt keine markierten Daten und konzentriert sich darauf, die inhärente Struktur innerhalb des Datensatzes zu finden.
  • KNN ist ein überwachter Lernalgorithmus, der für die Bildklassifizierung und Regression verwendet wird. Er stützt sich auf beschriftete Eingaben, um neue Datenpunkte auf der Grundlage der Mehrheitsklasse ihrer nächsten Nachbarn classify .

Ein weiteres verwandtes Konzept ist DBSCAN, bei dem die Clusterbildung auf der Dichte und nicht auf der Entfernung von einem zentralen Punkt basiert. Im Gegensatz zu K-Means ist es bei DBSCAN nicht erforderlich die Anzahl der Cluster nicht im Voraus festgelegt werden und ist besser in der Lage, Ausreißer zu behandeln.

Code-Beispiel: Quantisierung von Farben

Das folgende Python zeigt, wie K-Means zum Clustern von Pixelfarben verwendet werden kann, ein Schritt der Datenvorverarbeitung bei Bildverarbeitungsaufgaben.

import numpy as np
from sklearn.cluster import KMeans

# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)

# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)

# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten