Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

K-Means Clustering

Beim K-Means-Clustering werden unbeschriftete Daten in k Gruppen unterteilt. Dazu wechseln sich die Zuordnung zum nächstgelegenen Zentroiden und dessen Aktualisierung ab. Behandelt werden die Wahl von k, Anwendungsbereiche und Code.

K-Means-Clustering ist ein Algorithmus für unüberwachtes Lernen, der Daten in k Gruppen aufteilt. Jede Gruppe wird durch ihren Zentroiden repräsentiert, also den Mittelwert der ihr zugeordneten Punkte. Gesucht wird die Aufteilung mit der kleinsten Summe der quadrierten Abstände innerhalb der Cluster, dem sogenannten Trägheitsmaß. Die Punkte eines Clusters liegen dadurch nahe an seinem Zentroiden. Das Standardverfahren ist der Algorithmus von Lloyd, den Stuart Lloyd 1957 bei Bell Labs zur Quantisierung von Signalen entwickelte. Der Name „k-means“ stammt aus einem Aufsatz von James MacQueen aus dem Jahr 1967. Da k-means einfach, schnell und auf Millionen von Punkten skalierbar ist, wird es standardmäßig für Data Mining, Komprimierung und die Untersuchung der Struktur unbeschrifteter Daten eingesetzt.

Funktionsweise des Algorithmus#

Nach der Wahl der Startzentroiden wechselt Lloyds Algorithmus zwischen einem Zuordnungsschritt und einem Aktualisierungsschritt, bis sich die Cluster nicht mehr ändern:

  1. Initialisierung: Wähle k Startzentroiden. Die Standardeinstellung von Scikit-learn, k-means++, wählt den ersten Zentroiden zufällig aus. Jeder weitere wird mit einer Wahrscheinlichkeit ausgewählt, die proportional zum quadrierten Abstand vom nächstgelegenen bereits gewählten Zentroiden ist. Dadurch werden die Startpunkte weiter auseinander verteilt.
  2. Zuordnung: Weise jeden Punkt seinem nächstgelegenen Zentroiden zu, üblicherweise anhand der euklidischen Distanz.
  3. Aktualisierung: Verschiebe jeden Zentroiden zum Mittelwert der ihm nun zugeordneten Punkte.
  4. Wiederholen: Kehre zum Zuordnungsschritt zurück, bis kein Punkt mehr das Cluster wechselt oder sich die Zentroiden um weniger als einen Toleranzwert verschieben.

Keiner der beiden Schritte kann die Trägheit erhöhen, daher konvergiert die Schleife immer. Sie endet jedoch nur in einem lokalen Minimum, das von den Startzentroiden abhängt. Das globale Optimum zu finden ist NP-schwer. Deshalb führen Implementierungen mehrere Initialisierungen aus und behalten diejenige mit der geringsten Trägheit bei. In scikit-learn's KMeans wird n_init="auto" standardmäßig einmal ausgeführt, wenn k-Means++ zur Initialisierung verwendet wird, und zehnmal bei zufälliger Initialisierung.

Die Anzahl der Cluster wählen#

Bei k-means muss k im Voraus festgelegt werden. Das Trägheitsmaß sinkt immer, wenn k steigt, da mehr Zentroiden näher an den Punkten liegen. Bei der Ellbogenmethode wird daher das Trägheitsmaß gegen k aufgetragen und nach dem Punkt gesucht, an dem der Rückgang abflacht. Der Silhouettenwert vergleicht für jeden Punkt den mittleren Abstand zum eigenen Cluster mit dem mittleren Abstand zum nächstgelegenen anderen Cluster. Er reicht von -1 bis 1; höhere Werte stehen für kompakte, klar getrennte Cluster. In diesem Beispiel werden für Daten, die um vier Zentren herum generiert wurden, die Werte für k von 2 bis 6 berechnet:

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import silhouette_score

# 600 unlabeled points drawn around 4 hidden centers
X, _ = make_blobs(n_samples=600, centers=4, cluster_std=1.0, random_state=7)

# Fit k-means for several k and score each partition
for k in range(2, 7):
    kmeans = KMeans(n_clusters=k, n_init="auto", random_state=0)
    labels = kmeans.fit_predict(X)
    print(f"k={k}  inertia={kmeans.inertia_:8.0f}  silhouette={silhouette_score(X, labels):.3f}")

Das Trägheitsmaß sinkt von 18.363 bei k=2 auf 5.241 bei k=3 und 1.127 bei k=4, danach nur noch auf 1.039 bei k=5 und 922 bei k=6. Der Ellbogen liegt somit bei k=4. Der Silhouettenwert bestätigt das: Er erreicht bei k=4 mit 0,811 seinen Höchstwert und sinkt bei k=5 auf 0,687. Damit werden die vier Zentren wiedergefunden, um die herum die Daten generiert wurden.

Annahmen und Varianten#

K-means eignet sich am besten für Cluster, die ungefähr kugelförmig, ähnlich groß und im euklidischen Raum voneinander getrennt sind. Merkmale mit größeren Skalen beeinflussen die Distanz stärker, daher werden die Daten üblicherweise zuerst standardisiert. Jeder Punkt wird einem Cluster zugeordnet, und einige extreme Ausreißer können einen Zentroiden von seiner Gruppe wegziehen. Mehrere Varianten lockern diese Einschränkungen:

  • Mini-Batch-k-means: Aktualisiert Zentroiden anhand kleiner, zufälliger Batches. Bei großen Datensätzen wird dadurch etwas Genauigkeit gegen eine deutlich schnellere Trainingszeit eingetauscht.
  • K-Medoids: Verwendet tatsächliche Datenpunkte als Clusterzentren. Dadurch ist das Verfahren robuster gegenüber Ausreißern und funktioniert mit jedem Distanzmaß.
  • Fuzzy-c-means: Weist jedem Punkt für jedes Cluster einen Zugehörigkeitsgrad zu, ähnlich wie bei der Fuzzy-Logik, statt ihn nur einem Cluster zuzuordnen.
  • Gaußsche Mischmodelle: Passen für jedes Cluster eine Wahrscheinlichkeitsverteilung an. Dadurch sind elliptische Cluster unterschiedlicher Größe möglich, und die Zuordnungen werden als Wahrscheinlichkeitsverteilungen ausgegeben.

Anwendungen in KI und maschineller Bildverarbeitung#

  • Farbquantisierung: Beim Clustern der Pixel einer Bildes nach ihren Farben und Ersetzen jedes Pixels durch den Schwerpunkt seines Clusters wird ein Foto mit Tausenden von Farben auf eine Palette mit k Farben reduziert. Dadurch wird das Bild komprimiert und zugleich eine schnelle, grobe Form der Bildsegmentierung ermöglicht.
  • Codebücher und Vektorquantisierung: Die Schwerpunkte bilden ein Codebuch, und jeder Vektor wird als Index seines nächstgelegenen Schwerpunkts gespeichert. Bei der klassischen Bildsuche mit dem Bag-of-Visual-Words-Verfahren wurden die Vokabulare auf diese Weise aus lokalen Bildmerkmalen erstellt.
  • Entwurf von Ankerboxen: YOLOv2 führte k-means auf den Breiten und Höhen der Trainingsboxen aus und verwendete 1 minus IoU als Abstand, um die Ankerboxen auszuwählen.
  • Gewichtspalettierung: Beim Exportieren von YOLO26 nach Core ML mit quantize=8 werden die Werte jedes großen Gewichtstensors mithilfe von k-means zu 256 Schwerpunkten gruppiert. Dadurch speichert das exportierte Modell pro Gewicht einen 8-Bit-Index sowie eine kleine Nachschlagetabelle.
  • Kundensegmentierung: Einzelhändler gruppieren Kundinnen und Kunden anhand von Kaufhäufigkeit, Warenkorbgröße und Aktualität der letzten Bestellung, um Angebote auf die einzelnen Segmente zuzuschneiden.
  • K-nächste Nachbarn (KNN): Das gemeinsame „k“ sorgt für Verwirrung. KNN ist ein überwachter Algorithmus, der einen neuen Punkt anhand seiner k nächsten beschrifteten Beispiele klassifiziert. k-means ist dagegen unüberwacht, und k bezeichnet die Anzahl der erzeugten Cluster.
  • DBSCAN: Gruppiert Punkte nach ihrer Dichte, ermittelt die Anzahl der Cluster selbst, erkennt Cluster beliebiger Form und kennzeichnet dünn besetzte Punkte als Rauschen, statt sie einem Cluster zuzuordnen.
  • Hierarchisches Clustering: Erstellt einen Baum verschachtelter Cluster, indem wiederholt die jeweils nächstgelegenen Gruppen zusammengeführt werden. So lässt sich k nachträglich durch einen Schnitt auf beliebiger Ebene des Baums auswählen. Dafür steigen die Kosten mindestens quadratisch mit der Anzahl der Punkte.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens