{"id":165213,"date":"2026-02-18T11:45:02","date_gmt":"2026-02-18T10:45:02","guid":{"rendered":"https:\/\/liora.io\/de\/?p=165213"},"modified":"2026-02-18T11:45:03","modified_gmt":"2026-02-18T10:45:03","slug":"was-ist-k-means","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/was-ist-k-means","title":{"rendered":"K-means: Fokus auf diesen Clustering &amp; Machine Learning Algorithmus"},"content":{"rendered":"<p><strong>Clustering ist eine spezielle Disziplin von Machine Learning, mit dem Ziel, deine Daten in homogene Gruppen mit gemeinsamen Merkmalen aufzuteilen. Dies ist z. B. ein beliebtes Gebiet im Marketing, wo oft versucht wird, Kundenst\u00e4mme zu segmentieren, um bestimmte Verhaltensweisen zu erkennen. Der K-Mittelwert-Algorithmus (K-means) ist ein sehr bekannter un\u00fcberwachter Algorithmus f\u00fcr das Clustering.<\/strong><\/p>\n<p>In diesem Artikel werden wir detailliert beschreiben, wie es funktioniert und welche n\u00fctzlichen Mittel es gibt, um es zu optimieren.<\/p>\n<p>Dieser Algorithmus wurde 1957 in den Bell Laboratorien von Stuart P. Lloyd als Pulscodemodulations-Technik (PCM) entwickelt. Er wurde erst 1982 der breiten \u00d6ffentlichkeit vorgestellt. Im Jahr 1965 hatte Edward W. Forgy einen fast \u00e4hnlichen Algorithmus ver\u00f6ffentlicht, weshalb K-Means oft als Lloyd-Forgy-Algorithmus bezeichnet wird.<\/p>\n<p>Die Anwendungsbereiche sind vielf\u00e4ltig: Kundensegmentierung, Datenanalyse, Segmentierung eines Bildes, semi-\u00fcberwachtes Lernen&#8230;<\/p>\n<h2>Das Prinzip des k-means-Algorithmus<\/h2>\n<p>Wenn Punkte und eine ganze Zahl k gegeben sind, zielt der Algorithmus darauf ab, die Punkte in k homogene und kompakte Gruppen, sogenannte Cluster, zu unterteilen. Schauen wir uns das folgende Beispiel an:<\/p>\n<p><img decoding=\"async\" width=\"377\" height=\"368\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans1.webp\" alt=\"\" loading=\"lazy\"><br \/>\n<img decoding=\"async\" width=\"377\" height=\"368\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans-2-1.webp\" alt=\"\" loading=\"lazy\"><br \/>\nBei diesem 2D-Datensatz wird deutlich, dass er in drei Gruppen unterteilt werden kann.<\/p>\n<h3>Wie geht man konkret vor?<\/h3>\n<p>Die Idee ist ziemlich einfach und intuitiv. Der erste Schritt besteht darin, drei Zentroiden zuf\u00e4llig zu definieren, denen wir drei Bezeichnungen zuordnen, z. B. 0, 1, 2. Dann schauen wir uns f\u00fcr <strong>jeden Punkt die Entfernung zu den drei Zentroiden<\/strong> an und verbinden den Punkt mit dem n\u00e4chstgelegenen Zentroiden und dem entsprechenden Label. Dies entspricht einer <strong>Beschriftung unserer Daten<\/strong>.<\/p>\n<p>Schlie\u00dflich berechnen wir drei neue Zentroiden, die die Schwerpunkte jeder beschrifteten Punktwolke sein werden. Diese Schritte werden so lange wiederholt, bis die neuen Zentroide sich nicht mehr von den vorherigen unterscheiden. Das Endergebnis ist in der Abbildung rechts zu sehen.<\/p>\n<h3>Begriff der Entfernung und Initialisierung<\/h3>\n<p>In diesem Algorithmus sind zwei Punkte entscheidend: <strong>Welche Metrik wird verwendet, um die Entfernung zwischen den Punkten und den Zentroiden zu bewerten? Wie viele Cluster m\u00fcssen ausgew\u00e4hlt werden?<\/strong> Im k-Mittelwert-Algorithmus wird normalerweise die euklidische Distanz verwendet, d.h. p = (p1,&#8230;.,pn) und q = (q1,&#8230;.,qn).<\/p>\n<p>Sie erm\u00f6glicht es, die Entfernung zwischen jedem Punkt und den Zentroiden zu sch\u00e4tzen. F\u00fcr jeden Punkt wird die euklidische Distanz zwischen diesem Punkt und jedem Zentroiden berechnet und dann dem n\u00e4chstgelegenen Zentroiden zugeordnet, d.h. demjenigen mit der geringsten Distanz.<\/p>\n<p>Im vorherigen Beispiel war es einfach, die ideale Anzahl von Clustern zu finden, indem man sie grafisch darstellte. Normalerweise haben Datens\u00e4tze mehr als zwei Dimensionen und <strong>es ist daher schwierig, die Punktwolke zu visualisieren und die optimale Anzahl von Clustern schnell zu identifizieren<\/strong>. Nehmen wir im vorherigen Beispiel an, dass wir die Daten nicht vorher visualisiert haben und beschlie\u00dfen, verschiedene Male mit einer unterschiedlichen Anzahl an anf\u00e4nglichen Clustern zu testen. Hier sind die erhaltenen Ergebnisse:<\/p>\n<p><img decoding=\"async\" width=\"768\" height=\"257\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans4.webp\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Die Partitionierung ist ungenau, da die Anzahl der anf\u00e4nglichen Cluster viel h\u00f6her ist als die ideale Anzahl, in diesem Fall 3. Es gibt Methoden, <strong>um die ideale Anzahl von Clustern zu bestimmen<\/strong>. Die bekannteste ist die <strong>Ellbogenmethode<\/strong>. Sie st\u00fctzt sich auf den <strong>Begriff der Tr\u00e4gheit<\/strong>.<\/p>\n<p>Diese wird wie folgt definiert: die Summe der euklidischen Abst\u00e4nde zwischen jedem Punkt und seinem zugeh\u00f6rigen Zentroid. Je h\u00f6her die anf\u00e4ngliche Anzahl der Cluster ist, desto geringer ist die Tr\u00e4gheit: Die Punkte haben eine gr\u00f6\u00dfere Chance, <strong>neben einem Zentroid zu liegen<\/strong>. Schauen wir uns an, wie das in unserem Beispiel aussieht:<\/p>\n<p><img decoding=\"async\" width=\"739\" height=\"333\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans5.webp\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Es f\u00e4llt auf, dass die Tr\u00e4gheit ab 3 Clustern stagniert. Diese Methode ist schl\u00fcssig. Man kann sie mit einem pr\u00e4ziseren Ansatz verbinden, der jedoch mehr Rechenzeit erfordert: dem Silhouettenkoeffizienten. Er wird wie folgt definiert:<\/p>\n<ul>\n<li style=\"text-align: left\">a der durchschnittliche Abstand zu anderen Beobachtungen im selben Cluster (cad der Durchschnitt innerhalb des Clusters).<\/li>\n<li style=\"text-align: left\">b die durchschnittliche Entfernung zum n\u00e4chstgelegenen Cluster.<\/li>\n<\/ul>\n<p>Dieser Koeffizient kann zwischen -1 und +1 variieren. Ein Koeffizient nahe +1 bedeutet, dass die Beobachtung gut innerhalb ihres eigenen Clusters liegt, w\u00e4hrend ein Koeffizient nahe 0 bedeutet, dass sie nahe einer Grenze liegt; schlie\u00dflich bedeutet ein Koeffizient nahe -1, dass die Beobachtung mit dem falschen Cluster in Verbindung gebracht wird.<\/p>\n<p>Wie bei der Tr\u00e4gheit ist es sinnvoll, die Entwicklung des Koeffizienten in Abh\u00e4ngigkeit von der Anzahl der Cluster wie folgt anzuzeigen:<\/p>\n<p><img decoding=\"async\" width=\"627\" height=\"306\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans6.webp\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Diese Methode hilft auch dabei, die ideale Anzahl von Clustern zu finden, d.h. 3. Zus\u00e4tzlich zu diesen beiden Methoden ist es wichtig, eine gr\u00fcndliche Analyse der erstellten Cluster durchzuf\u00fchren. Darunter verstehe ich eine genaue und gr\u00fcndliche beschreibende Analyse, um die gemeinsamen Merkmale jedes Clusters zu bestimmen. Dies wird dir helfen, die typischen Profile jedes Clusters zu verstehen.<\/p>\n<h2>Und nun die Praxis in Python<\/h2>\n<p>Das Workout eines K-Mittelwert-Algorithmus wird durch die Bibliothek Sci-Learning erleichtert <a href=\"https:\/\/scikit-learn.org\/stable\/\">Scikit-Learn<\/a>. Unser Beispieldatensatz l\u00e4sst sich leicht mit der Funktion make_blobs von Scikit-Learn erstellen. Hier ist, wie sie in Code implementiert wird:<\/p>\n<p><img decoding=\"async\" width=\"768\" height=\"207\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans7.webp\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Jetzt, da wir unseren Datensatz haben, k\u00f6nnen wir mit der Implementierung eines K-means weitermachen. Wir benutzen die Scikit-Learn Bibliothek und sehen uns das Ergebnis an:<\/p>\n<p><img decoding=\"async\" width=\"635\" height=\"383\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans8.webp\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Das Attribut n_clusters der KMeans-Klasse von Scikit-Learn erm\u00f6glicht es, die Anzahl der gew\u00fcnschten Zentroiden festzulegen. Daher legt es auch die Anzahl der anf\u00e4nglichen Zentroiden fest. Diese Klasse verwendet standardm\u00e4\u00dfig keine zuf\u00e4llige Initialisierungsmethode, sondern eine Methode, die 2007 von David Arthur und Sergei Vassilvitskii entwickelt wurde und <strong>K-MEANS ++<\/strong> hei\u00dft. <strong>Bei dieser Methode werden Zentroide ausgew\u00e4hlt, die sich voneinander unterscheiden, wodurch das Risiko einer Konvergenz zu einer nicht-optimalen L\u00f6sung verringert wird<\/strong>. Die Standarddistanz ist nat\u00fcrlich die oben definierte euklidische Distanz.<\/p>\n<h2>Wo liegen die Grenzen des k-means-Algorithmus?<\/h2>\n<p>Wie wir gesehen haben, muss der Algorithmus zun\u00e4chst <strong>die Anzahl der Partitionen festlegen<\/strong>. Dies erfordert eine genaue Vorstellung davon, und obwohl wir zwei komplement\u00e4re Methoden zur Optimierung f\u00fcr bestimmte Datens\u00e4tze gesehen haben, sind sie nicht unfehlbar.<\/p>\n<p>Das liegt daran, dass Datens\u00e4tze mit z. B. elliptischen Formen problematisch sein k\u00f6nnen. Im folgenden Beispiel siehst du deutlich zwei Gruppen, die zwei Ellipsen \u00e4hneln. Die rechte Abbildung zeigt das Ergebnis nach der Anwendung des k-Mittelwert-Algorithmus. Es ist klar, dass der Algorithmus nicht in der Lage war, unsere beiden Ellipsen zu identifizieren.<\/p>\n<p><img decoding=\"async\" width=\"768\" height=\"242\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/11\/kmeans-9.webp\" alt=\"\" loading=\"lazy\"><br \/>\nDie Verwendung eines Clustering-Algorithmus wie der k-means-Algorithmus ist nicht einfach, je nachdem, welche Daten du zur Verf\u00fcgung hast. Die Daten m\u00fcssen oftmals \u00fcberarbeitet werden.<\/p>\n<p>Bei Liora lernst du, die wichtigsten Clustering-Algorithmen zu beherrschen und sie in Datens\u00e4tzen zu interpretieren.<\/p>\n<p>Erkunde <a href=\"\/#formations\">unsere Kursangebote<\/a> und <a href=\"https:\/\/liora.io\/postuler\">bewirb dich f\u00fcr einen Kurs<\/a>, um mehr \u00fcber Clustering, aber auch \u00fcber viele andere Bereiche des Machine Learning zu erfahren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Clustering ist eine spezielle Disziplin von Machine Learning, mit dem Ziel, deine Daten in homogene Gruppen mit gemeinsamen Merkmalen aufzuteilen. Dies ist z. B. ein beliebtes Gebiet im Marketing, wo oft versucht wird, Kundenst\u00e4mme zu segmentieren, um bestimmte Verhaltensweisen zu erkennen. Der K-Mittelwert-Algorithmus (K-means) ist ein sehr bekannter un\u00fcberwachter Algorithmus f\u00fcr das Clustering. In diesem [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":218129,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-165213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/165213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=165213"}],"version-history":[{"count":2,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/165213\/revisions"}],"predecessor-version":[{"id":218130,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/165213\/revisions\/218130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/218129"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=165213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=165213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}