In dem folgenden Beitrag werden wir benutzerdefinierte Funktionen schreiben, um die Abstände zwischen den Datenpunkten und Clustern zu berechnen und die Clusterzentren nach jeder Iteration zu aktualisieren. Zudem werden wir am Ende ein 3D-Diagramm visualisieren.

3D Visualisierungen K-means Clusterings

In diesem Tutorial werden wir den Iris-Datensatz wie im vorherigen verwenden. Wir wissen bereits, dass der Iris-Datensatz 3 verschiedene Arten von Blumen und 4 Merkmale für jede Blume enthält. Aber wir werden für dieses Tutorial nur 3 Funktionen verwenden, da wir einen 4-dimensionalen Raum nicht visualisieren können. Daher ist es eine intelligente Idee, zunächst 3 zufällige Clusterzentren zu wählen.

In diesem Tutorial werden wir einen Iris-Datensatz verwenden. Wir wissen bereits, dass der Iris-Datensatz 3 verschiedene Arten von Blumen und 4 Merkmale für jede Blume enthält. Aber wir werden für dieses Tutorial nur 3 Funktionen verwenden, da wir einen 4-dimensionalen Raum nicht visualisieren können. Daher ist es eine intelligente Idee, zunächst 3 zufällige Clusterzentren zu wählen.

Copy to Clipboard

„Cluster_centers“ ist eine 3×3 Matrix mit jeweils 3 Zentren und 3 Dimensionen. Die Minimal- und Maximalwerte eines jeden Merkmals wurden gefunden und Zufallswerte zwischen diesen Werten zugewiesen (um in der Nähe der Datenpunkte zu sein).

Da wir unsere Clusterzentren zugeordnet habe, können wir mit der Berechnung des Abstands zwischen Datenpunkten und jedem Clusterzentrum beginnen. Wir haben 3 Clusterzentren, also werden wir für jeden Datenpunkt 3 Entfernungswerte haben. Für das Clustering müssen wir das nächstgelegene Zentrum auswählen und unseren relevanten Datenpunkt diesem Zentrum zuordnen. Sehen wir uns den Code für dieses Teil an:

Copy to Clipboard

Der obige Code findet für jeden Datenpunkt 3 Entferungswerte und vergleicht diese am Ende. Wenn z.B. „total_1“ das Minimum von 3 Entfernungspunkten ist, schließen wir an, dass der erste Cluster der nächste ist und geben eine Null zurück.

Wir haben die Entfernungsmessung abgeschlossen, aber wir sind noch nicht fertig. Da wir mit zufälligen Clusterzentren begonnen haben, erwarten wir nicht, dass unsere Cluster korrekt sind. Wir müssen die Cluster-Zentren weiterführen und aktualisieren, bis das System stabil ist und keine Änderungen in den Clustern auftreten.

Die Aktualisierung der Clusterzentren bedeutet, den Durchschnitt jedes Clusters zu nehmen und diesen Wert als neue Mitte zuzuweisen. Die Mitteilung hilft uns, den Bereich der Cluster einzugrenzen und die Outliars oder das Rauschen zu eliminieren. Um dies zu erreichen, werden wir unsere Cluster zwingen, so nahe wie möglich beieinander zu sein, also bessere Gruppen zu haben.

Copy to Clipboard

Oben haben wir die Funktion zur Aktualisierung der Clusterzentren geschrieben. Es berechnet die Datenpunkte in jedem Cluster basierend auf 4 Merkmalen und gibt eine neue 3×4 Matrix zurück. Diese Zentren sollen besser sein als die vorherigen, da wir den Grad der Zufällgkeit verringern. Wir möchten darauf hinweisen, dass wir 0,001 zum Nenner des rechten Ausdrucks im folgenden Code hinzugefügt haben, um einen NaN-Wert zu vermeiden, wenn die Anzahl der Elmente Null ist:

Copy to Clipboard

Da unsere Funktionen bereit sind, können wir mit der Ausführung unseres Codes und der Beobachtung der Ergebnisse beginnen:

Copy to Clipboard

Das ist alles. Wir setzen die Iterationszahl auf 15 und erwarten ein gutes Ergebnis, da wir einen kleinen Datensatz (150 Zeilen und 4 Spalten) haben. Jetzt sind wir bereit, unsere 3D-Diagramme zu sehen. Schauen wir uns zunächst an, wie die Grafik vor dem Clustering aussah, um die Leistung unseres Modells zu vergleichen:

Copy to Clipboard

Und so sieht Sie nach dem Clustering aus:

Copy to Clipboard

Wie Sie sehen können, ähneln sich die beiden Diagramme stark. Aber es gibt einige Unterschiede die hervorgehoben werden müssen. So z.B. der grüne Punkt ursprünglich blau. Es war jedoch mit den grünen Punkt gebündelt. Der Grund dafür ist ganz einfach. Da der Punkt näher am grünen Clusterzentrum als am blauen liegt, wurde dieser als grüner Punkt gruppiert. Übrigens, größere Kugeln in der Mitte jedes Clusters stellen die Clusterzentren dar. So können wir sehen, dass das Clusterzentrum ein solcher Punkt ist, dass es in der Lage ist, durchschnittliche Merkmale des gesamten Clusters zu tragen.

Wir hoffen, dass dieses Tutorial Ihnen gefallen hat. Weitere ähnliche Beiträge werden noch folgen.

Vielen Dank für Ihren Besuch.