Informatik · Klasse 11–13 · aktualisiert
k-Means-Algorithmus: Ablauf, Beispiel und Grenzen
k-Means teilt Datenpunkte in k Gruppen ein. Du übst Zuordnen und Aktualisieren und lernst, was Startpunkte, k und Ausreißer ändern.
0 von 11 Aufgaben gelöst
Kurz gesagt
k-Means teilt Objekte in eine vorher festgelegte Zahl k von Clustern ein, ohne dass Zielwerte bekannt sind. Er ordnet jeden Punkt dem nächsten Mittelpunkt zu und berechnet die Mittelpunkte dann als Mittelwerte neu. Das wiederholt er, bis sich die Zuordnungen nicht mehr ändern.
Ein Shop möchte Kunden mit ähnlichen Merkmalen finden, aber niemand kennt die Gruppen schon. Dafür wird k-Means häufig eingesetzt. Hier lernst du, wie der Algorithmus Schritt für Schritt arbeitet und wo er Fehler machen kann.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
3 Abschnitte
k-Means gehört zum unüberwachten Lernen. Das ist maschinelles Lernen ohne im Voraus bekannte Zielwerte. Es gibt also keine Musterlösung, an der sich der Algorithmus orientiert. Er sucht in den Daten selbst nach Gruppen von ähnlichen Objekten. Solche Gruppen heißen Cluster.
Eines musst du vorher festlegen: die Zahl k der Gruppen. Der Algorithmus bildet dann aus den Objekten genau k Cluster. Jedes Objekt gehört dabei zu genau einem Cluster. Das Ziel ist, dass die Summe der quadrierten Abweichungen von den Cluster-Mittelpunkten möglichst klein wird.
Die Objekte werden als Punkte dargestellt. Ihre Eigenschaften sind die Koordinaten der Punkte. k-Means rechnet mit Mittelwerten und braucht deshalb Zahlen. Kategorien wie „Auto“, „LKW“ und „Fahrrad“ gehen nicht, weil man daraus keinen Mittelwert bilden kann. Was die gefundenen Gruppen bedeuten, sagt der Algorithmus nicht. Das muss man danach separat untersuchen.
Definition
Cluster
Ein Cluster ist eine Gruppe von ähnlichen Objekten. Zeichnet man die Objekte als Punkte, bilden sie dort eine Punktwolke, in der sich Punkte anhäufen.
Beispiel: Musikkäufe von drei Personen
- 1Anteil der Musikstücke, die jede Person pro Monat online kauft (Pop, Rock, Jazz):
- 2Person 1: 2, 10, 3
- 3Person 2: 1, 8, 3
- 4Person 3: 8, 1, 1
- 5Man würde die Personen intuitiv in zwei Gruppen einteilen: Person 1 und 2 in die eine, Person 3 in die andere.
- 6So eindeutig ist das nur wegen der gewählten Werte. Bei näher beieinanderliegenden Werten und mehr Personen wird die Einteilung schwerer.
Teste dich
k-Means arbeitet in Runden. Vorher gibt es einen Start: Im häufigsten Verfahren wählst du k zufällige Punkte aus den Daten als erste Mittelpunkte. Je nach Programm kann der Start auch anders ablaufen.
Dann wiederholst du zwei Schritte. Beim Zuordnen kommt jeder Punkt in den Cluster, dessen Mittelpunkt ihm am nächsten liegt. Gemessen wird mit dem euklidischen Abstand. Auf einer Zahlengeraden ist das einfach der Abstand zwischen den Zahlen, also der Betrag der Differenz. Zwischen 3 und 8 sind es 5.
Beim Aktualisieren berechnest du für jeden Cluster den Mittelpunkt neu. Er ist der Mittelwert aller Punkte im Cluster: Summe der Punkte geteilt durch ihre Anzahl. Liegen die Punkte 2 und 4 im Cluster, ist der neue Mittelpunkt (2 + 4) : 2 = 3.
Das Ganze wiederholst du, bis sich die Zuordnungen nicht mehr ändern. Weil sich die Mittelpunkte verschieben, können Punkte dabei ihren Cluster wechseln. Die Musteraufgabe weiter unten rechnet das mit sechs ausgedachten Punkten durch.
| Schritt | Was passiert? | Regel |
|---|---|---|
| Start | k Mittelpunkte wählen | zufällige Punkte aus den Daten |
| Zuordnen | Jeden Punkt einem Cluster geben | nächster Mittelpunkt (euklidischer Abstand) |
| Aktualisieren | Mittelpunkte neu berechnen | Mittelwert der Punkte im Cluster |
| Wiederholen | Zuordnen und Aktualisieren | bis sich die Zuordnung nicht mehr ändert |
Merke: Zuordnen heißt: zum nächsten Mittelpunkt. Aktualisieren heißt: neuer Mittelpunkt ist der Mittelwert. Stopp, wenn sich die Zuordnungen nicht mehr ändern.
Teste dich
Startpunkte: Die Startpunkte werden zufällig gewählt. Die gefundene Lösung hängt stark von ihnen ab, und k-Means muss nicht die beste mögliche Lösung finden. Der einfachste Ansatz ist, den Algorithmus mehrmals mit verschiedenen Startwerten zu starten und die beste Lösung zu nehmen. Das Verfahren k-Means++ versucht, bessere Startpunkte zu finden.
Wahl von k: Bei einem ungeeigneten k können sich komplett andere, unter Umständen unintuitive Lösungen ergeben. Bei einem „falschen“ k kann kein gutes Clustering erfolgen. Deshalb probierst du verschiedene Werte für k aus und wählst dann ein geeignetes. Das geht zum Beispiel mit dem Silhouettenkoeffizienten, einer Maßzahl für die Qualität eines Clusterings, oder durch Vergleich der Clusteringkosten. Beachte: Die Kosten sinken mit steigendem k monoton. Der Silhouettenkoeffizient ist dagegen von k unabhängig. Damit kann man auch Ergebnisse vergleichen, die mit verschiedenen k entstanden sind.
Ausreißer: k-Means ordnet jeden Punkt einem Cluster zu und kann Ausreißer nicht erkennen. Sie können das Ergebnis stark verfälschen. Fehlerhafte Datenobjekte verschieben die Mittelpunkte oft erheblich. Ausgedachtes Beispiel: Ein Cluster hat die Punkte 1, 2 und 3 mit dem Mittelwert 2. Kommt der Punkt 50 dazu und liegt im selben Cluster, ist der Mittelwert (1 + 2 + 3 + 50) : 4 = 14. Der Mittelpunkt liegt dann weit weg von den drei anderen Punkten.
Bevor du einen Ausreißer aussortierst, prüfst du, ob er ein verlässliches, echtes Ergebnis ist oder ein Messfehler. Abhilfe kann eine vorherige Noisereduktion (Rauschen verringern) schaffen oder ein anderer Algorithmus wie DBSCAN, der Noise automatisch erkennt.
Definition
Ausreißer
Ein Ausreißer ist ein Messwert, der stark von der gesamten Messreihe abweicht.
Merke: Startpunkte, die Wahl von k und Ausreißer können das Ergebnis stark ändern. Gegenmittel: mehrmals starten, verschiedene k vergleichen, Ausreißer prüfen.
Teste dich
Alles auf einen Blick
k-Means-Algorithmus
Ziel
k-Means teilt Objekte ohne bekannte Zielwerte in k Cluster ein, k legst du vorher fest.
Zuordnen
Jeder Punkt kommt zum nächstgelegenen Mittelpunkt.
Aktualisieren
Der neue Mittelpunkt ist der Mittelwert aller Punkte im Cluster.
Ende
Es wird wiederholt, bis sich die Zuordnungen nicht mehr ändern.
Startpunkte
Das Ergebnis hängt stark von ihnen ab, darum mehrmals mit verschiedenen Startwerten starten.
Grenzen
Ein ungeeignetes k und Ausreißer können das Ergebnis stark verändern.
Musteraufgabe · Schritt für Schritt
Sechs Punkte mit k = 2 clustern (ausgedachtes Beispiel)
- 1Ausgedachte Punkte auf der Zahlengeraden: 1, 2, 3, 9, 10, 11. Es gilt k = 2. Startmittelpunkte aus den Daten: m1 = 1 und m2 = 2.
- 2Runde 1, Zuordnen: Der Punkt 1 liegt bei m1 (Abstand 0). Der Punkt 2 liegt bei m2. Der Punkt 3 hat Abstand 2 zu m1 und 1 zu m2, also m2. Auch 9, 10 und 11 liegen näher an m2. Cluster A = {1}, Cluster B = {2, 3, 9, 10, 11}.
- 3Runde 1, Aktualisieren: m1 = 1. m2 = (2 + 3 + 9 + 10 + 11) : 5 = 35 : 5 = 7.
- 4Runde 2, Zuordnen mit m1 = 1 und m2 = 7: Der Punkt 1 gehört zu m1. Der Punkt 2 hat Abstand 1 zu m1 und 5 zu m2, also m1. Der Punkt 3 hat Abstand 2 zu m1 und 4 zu m2, also m1. Der Punkt 9 hat Abstand 8 zu m1 und 2 zu m2, also m2. Auch 10 und 11 gehören zu m2. Cluster A = {1, 2, 3}, Cluster B = {9, 10, 11}.
- 5Runde 2, Aktualisieren: m1 = (1 + 2 + 3) : 3 = 2. m2 = (9 + 10 + 11) : 3 = 10.
- 6Runde 3, Zuordnen mit m1 = 2 und m2 = 10: Der Punkt 3 hat Abstand 1 zu m1 und 7 zu m2. Der Punkt 9 hat Abstand 7 zu m1 und 1 zu m2. Alle Punkte bleiben im selben Cluster, die Zuordnung ändert sich nicht. Stopp.
- 7Ergebnis: {1, 2, 3} und {9, 10, 11}. Die Punkte 2 und 3 haben in Runde 2 den Cluster gewechselt.
Fehler finden
Prüfe die Schritte bei Punkten auf der Zahlengeraden (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 4Der neue Mittelpunkt ist der Mittelwert, nicht die Summe. Richtig: (2 + 4 + 6) : 3 = 12 : 3 = 4.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Bei k-Means wird jeder Punkt dem Mittelpunkt zugeordnet. Beim Aktualisieren berechnet er den neuen Mittelpunkt als der Punkte im Cluster. Fehlerhafte Datenobjekte verschieben die Mittelpunkte .
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback