• IT-Karriere:
  • Services:

Unsupervised Learning: k-Means-Algorithmus

Der k-Means-Algorithmus ist einer der bekanntesten Clustering-Algorithmen im Unsupervised Learning (unüberwachtes Lernen). Sein Anwendungsgebiet ist die Suche nach Clustern, denen Merkmalsträger (Objekte, Fälle) anhand ihrer Merkmale (Inputfaktoren) zugeordnet werden sollen. Im Gegensatz zur Klassifikation, die wir am Beispiel Random Forest betrachtet haben, wird bei Clustering nicht versucht, neue Merkmalsträger (Objekte, Fälle) bekannten Klassen (in unserem Beispiel die drei Arten von Schwertlilien) zuzuordnen. Es werden vielmehr Objekte anhand ihrer Ähnlichkeit zu Clustern zugeordnet.

Stellenmarkt
  1. Stadt Regensburg, Regensburg
  2. Insight Health GmbH & Co. KG, Waldems

Ein fiktives Beispiel: Finde k-Cluster von Bieren anhand der Merkmale Preis, Alkoholgehalt, Stammgewürzgehalt, Grad der empfundenen Herbe, Lichtdurchlässigkeit, Schaumstärke und so weiter. Wir wollen ein Bier nicht einer bestimmten Klasse zuordnen, sondern sind neugierig darauf zu erfahren, was für Cluster von Bieren es wohl gibt. Die Cluster selbst werden vom k-Means-Algorithmus gesucht und definiert. Anwender geben lediglich die Anzahl der zu bildenden Cluster an: die Zahl k im Namen k-Means-Algorithmus.

Typische Einsatzwecke vom k-Means-Algorithmus sind zum Beispiel: das Clustering von Kunden anhand soziodemografischer Merkmale oder Kaufverhalten und die Suche nach noch unbekannten Clustern als Ideenfindung für neue Klassen, die man in Zukunft möglicherweise für Klassifizierungsaufgaben nutzen kann. Auch die Suche nach Ausreißern und Anomalitäten, also Fällen, die von den Zentren der Cluster weit entfernt sind, gehört dazu.

Der k-Means-Algorithmus ist in einer Vielzahl von Machine-Learning-Bibliotheken, insbesondere für die bei Machine-Learning-Projekten besonders wichtigen Programmiersprachen Python und R, verfügbar. Anwender werden ihn de facto nie selber programmieren müssen. Es ist jedoch wichtig zu verstehen, wie er funktioniert. Er besteht aus nur fünf Schritten:

1. Setze den Wert für die Variable k: die Anzahl der Cluster; dieser Parameter wird vom Anwender vorgegeben. 2. Wähle k-Punkte als Anfangszentren der Cluster. 3. Ordne jeden Punkt, also jeden Merkmalsträger, jenem Zentrum zu, das ihm an nächsten ist. Punkte, die einem Zentrum wegen ihrer Nähe zugeordnet wurden, bilden einen Cluster. 4. Berechne die k-Clusterzentren neu: Die Zentren sollen sich im Zentrum, also in der Mitte der Cluster, welche in Schritt 3 gebildet wurden, befinden. 5. Hat sich die Position der Clusterzentren geändert? Wenn ja, springe zu Schritt 3, ansonsten beende das Programm.

Wie man sehen kann, gibt es eine Wiederholungsschleife, die sich von Schritt 3 bis 5 erstreckt. Mit jedem Durchlauf wandern die Zentren immer näher an das Zentrum der neu berechneten k-Cluster. Dadurch werden die Cluster immer besser definiert.

Einige wichtige Anmerkungen:

Zu Schritt 1: Die Wahl der Clusteranzahl k ist schwierig. Man kann diese anhand von Vorwissen, d. h. Fach- und Erfahrungswissen des Anwenders, wählen. Eine andere Möglichkeit ist, dass man unterschiedliche Werte für k ausprobiert und dann nachträglich die Ergebnisse des k-Means-Algorithmus miteinander vergleicht.

Schritt 2: Die Art und Weise, wie Anfangszentren der Cluster gewählt werden, ist von großer Bedeutung, weil sie das Ergebnis, nämlich die Lage der Cluster selbst, und auch die Anzahl der Schleifendurchläufe beeinflusst. Es gibt hierzu unterschiedliche Möglichkeiten. Eine Möglichkeit ist es, sie zufällig zu wählen, den gesamten k-Means-Algorithmus mehrmals (n-mal) auszuführen und ganz am Ende die finalen k-Cluster als statistisches Mittel der k-Cluster der n-Durchläufe zu wählen.

Schritt 3: Für die Berechnung der Distanz zwischen Punkten und den Clusterzentren gibt es mehrere Möglichkeiten, beispielsweise die euklidische Distanz.

In den Machine-Learning-Bibliotheken wird man oft mehrere Varianten beziehungsweise Abkömmlinge des k-Means-Algorithmus finden. Diese unterscheiden sich hauptsächlich, wie oben angedeutet, in den unterschiedlichen Möglichkeiten, die Schritte 2 und 3 zu realisieren, und sind je nach Anwendungsfall und Datengrundlage zu wählen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Random Forest, k-Means, Genetik: Machine Learning anhand von drei Algorithmen erklärtReinforcement Learning: genetischer Algorithmus 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Spiele-Angebote
  1. 16,99€
  2. (u. a. Star Wars: The Force Unleashed - Ultimate Sith Edition für 4,20€, Star Wars: Knights of...
  3. 31,99€

Kimmy1994 02. Nov 2018

Hey, seit geraumer Zeit interessiere ich mich für Entscheidungsbäume und Random Forests...

bionade24 20. Okt 2018

In Bayern Gymnasium kommt in der 9. nur simple Stochastik dran, nix davon. Noch nicht...

Ducifacius 17. Okt 2018

... heißt auf deutsch "Maschinelles Lernen" (groß geschrieben als Name eines...

Kein Kostverächter 16. Okt 2018

Der aktuelle Zustand ist aber gerade Vurin = Vmax, was nach deinem Regelsatz ein nicht...

A. Tomic 16. Okt 2018

Artikel wie diesen finde ich absolut genial. Es ist gar nicht einfach, komplizierte...


Folgen Sie uns
       


Core i7-1185G7 (Tiger Lake) im Test: Gut gebrüllt, Intel
Core i7-1185G7 (Tiger Lake) im Test
Gut gebrüllt, Intel

Dank vier äußerst schneller CPU-Kerne und überraschend flotter iGPU gibt Tiger Lake verglichen zu AMDs Ryzen 4000 eine gute Figur ab.
Ein Test von Marc Sauter

  1. Tiger Lake Überblick zu Intels 11th-Gen-Laptops
  2. Project Athena 2.0 Evo-Ultrabooks gibt es nur mit Windows 10
  3. Ultrabook-Chip Das kann Intels Tiger Lake

Java 15: Sealed Classes - Code-Smell oder moderne Erweiterung?
Java 15
Sealed Classes - Code-Smell oder moderne Erweiterung?

Was bringt das Preview Feature aus Java 15, wie wird es benutzt und bricht das nicht das Prinzip der Kapselung?
Eine Analyse von Boris Mayer

  1. Java JDK 15 geht mit neuen Features in die General Availability
  2. Java Nicht die Bohne veraltet
  3. JDK Oracle will "Schmerzen" von Java beheben

Beoplay H95 im Test: Toller Klang, aber für 800 Euro zu schwache ANC-Leistung
Beoplay H95 im Test
Toller Klang, aber für 800 Euro zu schwache ANC-Leistung

Der Beoplay H95 ist ein ANC-Kopfhörer mit einem tollen Klang. Aber wer dafür viel Geld ausgibt, muss sich mit einigen Kompromissen abfinden.
Ein Test von Ingo Pakalski


      •  /