Hallo,
Ich würde gerne wissen, welche Clustering-Plattform, die entweder in JMP oder JMP Pro verfügbar ist, sich am besten für die Identifizierung von Clustern aus diesen Spiraldaten eignet.

Mit HDBSCAN kann ich die Cluster wie unten dargestellt korrekt identifizieren, würde aber nach Möglichkeit gerne JMP verwenden:

Tabellenskript beigefügt.
Danke jpol
Hi @jpol ,
Ich bin auf diesen Beitrag gestoßen und fand ihn sehr interessant – weiß jetzt nicht einmal mehr, wonach ich gesucht habe, aber das war ein wirklich cooler Beitrag und danke für den Originaldatensatz zum Spielen!Ich habe einen anderen Ansatz ausprobiert, der für Sie von Interesse sein könnte. Zunächst einmal habe ich einige zusätzliche Spalten in der Datentabelle hinzugefügt und andere entfernt, die ich nicht benötigte. Ich habe mehr X- und Y-Daten hinzugefügt, aber mit Rauschen, sodass die Spiralen nicht so schön aussahen (nur um das Problem schwieriger zu machen!
). Ich habe sogar die X/Y-Koordinaten in R/Theta-Koordinaten umgewandelt, um das Clustering und die Modellierung zu testen, aber festgestellt, dass R und Theta das Clustering oder die Modellierung nicht verbessert haben. Die Datentabelle ist auch beigefügt.
Sie haben Recht, dass diese "Ausreißer"-Punkte mit der Single-Linkage-Methode beim hierarchischen Clustering Chaos anrichten, selbst wenn die Daten standardisiert werden. Ich denke, das liegt daran, dass diese Punkte etwas mit den restlichen Daten gemeinsam haben und am Ende auch die Standardabweichung für die Daten in dieser Spalte (dh X oder Y) aufblähen. In JMP 11 haben sie jedoch die Option „Standardize Robustly“ hinzugefügt, wodurch die Ausreißer noch stärker hervortreten. Ich kenne nicht den ganzen Algorithmus dafür, aber ich würde vermuten, dass JMP wahrscheinlich eine Art T^2-, Jackknife- oder KNN-Ausreißertest durchführt. Wenn Sie die Multivariate-Plattform verwenden und einen T^2-Test durchführen oder die Explore Outlier-Plattform verwenden und einen KNN-Test durchführen, können Sie sehen, dass die 5 zusätzlichen Punkte als potenzielle Ausreißer angezeigt werden. Der einzige, der in Frage kommt, könnte der in der Mitte sein. Sie können die Berichte unten sehen. Sie werden auch als Skripte in der Datentabelle gespeichert.


Kurz gesagt, aktivieren Sie „Robust standardisieren“, wenn Sie glauben, dass Sie Ausreißer haben. Dadurch werden die Auswirkungen der Ausreißer minimiert, wenn JMP die Daten standardisiert. Wenn Sie das Dendrogramm erhalten, können Sie 8 Cluster auswählen, und die Hierarchical Clustering-Plattform unterscheidet die zusätzlichen 5 Datenpunkte korrekt als ihre eigenen individuellen Cluster. Siehe unten HC-Bericht von JMP. Sie können sehen, dass alle Ausreißer-Cluster auf einem einzigen Konstellationsarm ausgerichtet sind. Sie können nicht in ihrem eigenen Cluster platziert werden, da sie nicht genug gemeinsam haben und gleichzeitig zu viel mit dem Rest des Datensatzes gemeinsam haben. Sie müssen immer noch 8 Cluster angeben, sonst werden der Mittelpunkt und die gesamte Spirale in einem Cluster und die 4 äußeren Punkte jeweils in einem eigenen Cluster gruppiert.

Wenn Sie eine dritte Dimension von Daten hätten – sagen wir Sternhelligkeit (ich sage das nur, weil dies einem Galaxienbild sehr ähnlich ist) oder Z-Koordinate, dann könnten Sie diese den Daten hinzufügen, um eine andere Unterscheidungsmethode zu ermöglichen. Wenn Sie vorher wissen, dass es sich um Ausreißer handelt, können Sie immer die Gesamtzahl der Cluster angeben - in diesem Fall 8 - und das hierarchische Clustering wählt sie gut aus (bei robuster Standardisierung). Wenn es sich bei den fraglichen Punkten um Dinge wie Passermarken zur Markierung bestimmter Stellen auf einer Fotoplatte oder Transistorlayouts auf einem Si-Wafer handelt, können diese von vornherein aus dem Datensatz entfernt werden. Aber das ist A-priori-Wissen, das Sie irgendwie in die Daten einbeziehen müssen.
Ich beschloss, ein wenig weiter damit zu spielen und zu sehen, ob ein Maschinenalgorithmus die Cluster heraussuchen könnte. Von den Methoden, die JMP Pro zur Verfügung stellt, denke ich, dass Support Vector Machines die beste sein könnten, da numerische Eingaben erforderlich sind, um Klassifizierungsausgaben abzuleiten. Dieser Datensatz ist im Wesentlichen ein Klassifizierungsproblem. Sie versuchen, jeden Arm der Spirale von den anderen Armen zu unterscheiden.
Mit den Clustern der hierarchischen Clustering-Plattform als Ausgabe zum Modellieren mit den X- und Y-Eingaben für die Support Vector Machine-Plattform in JMP Pro konnte ich die verschiedenen Cluster perfekt modellieren. Da ich nicht wusste, welche genauen Parameter in dem Modell verwendet werden sollten, habe ich ein Tuning-Design mit 40 Läufen durchgeführt, und tatsächlich war die SVM-Plattform in der Lage, die 8 Cluster auszuwählen. Die Kontingenztabelle von Clustern im Vergleich zu vorhergesagten Clustern weist 0 Fehlklassifizierungen auf. *Update*: Ich habe vergessen zu erwähnen, dass ich beim Training des SVM-Modells auch 50 % der Daten als Validierungssatz verwendet habe.
Hier ist die Ausgabe des SVM-Berichts. Sie können sehen, dass jeder Arm eindeutig identifiziert ist, ebenso wie die 5 zusätzlichen Ausreißer.

Beim Vergleich der mit der HC-Methode und der SVM eingefärbten Daten sehen wir, dass sie im Wesentlichen identisch sind. (Ich habe den Markierungstyp für die Ausreißer in * geändert, damit es besser zu sehen ist).


Und die Kontingenztabelle zeigt 0 Fehlklassifizierungen.

Dies war ein wirklich cooler Datensatz zum Spielen, und ich danke Ihnen, dass Sie diese Frage gepostet haben. Auch hier erinnere ich mich nicht einmal daran, wonach ich ursprünglich gesucht hatte, fand das aber besonders cool. Ich könnte einige der anderen Plattformen ausprobieren und sehen, wie sie bei der Modellierung/Klassifizierung dieser Daten abschneiden. Danke!
Ich hoffe das hilft!,
DS
**Aktualisierung 2**:
Also ging ich zurück und testete die Anpassung dieses Datensatzes mit einigen der anderen Vorhersagemodellierungsplattformen in JMP, und die einzigen anderen beiden, die nahe kamen, waren die Entscheidungsbaum- und Bootstrap-Forest-Plattformen. Selbst dann schneidet keines von ihnen so gut ab wie das SVM-Modell. Beide haben beim Modellieren nur 3 Cluster herausgesucht, die Cluster sind fast gleich, aber nicht ganz. SVM scheint also tatsächlich die bessere Wahl zu sein.


Ich habe sogar die neue XGBoost-Plattform ausprobiert, die überraschenderweise auch nicht so gut funktioniert. Ich habe verschiedene Anpassungsoptionen ausprobiert, aber möglicherweise nicht so gut optimiert, wie es sein könnte, da es viele verschiedene Abstimmungsparameter gibt. Das Beste, was es tat, war, die 3 Arme der Spirale und nur einen Ausreißer zu klassifizieren, den Rest falsch zu klassifizieren. Am Ende ist also HC-Clustering, um die Ausgabe zu erhalten, und SVM-Modellierung, um die Ausgabe für potenziell unbekannte Spiralen zu modellieren, wahrscheinlich das Beste. Viel Spaß!
Ich bin hier nicht der Experte; Ich verlasse mich auf andere. Meine Vermutung wäre ein separater Durchgang, um Punkte zu entdecken, die nicht weiter als der Durchschnitt von anderen Punkten entfernt sind, aber das würde fehlschlagen, wenn zwei Ausreißer nebeneinander lägen, sodass ihr Zweier-Cluster getestet werden müsste ... vielleicht der HDBSCAN macht so etwas.
Können Sie mitteilen, welche Art von Prozess die spiralförmigen Cluster erzeugt?
Danke Craig für die Angabe der richtigen Methode und des Artikellinks.
Die Single-Link-Methode funktioniert bei diesem relativ sauberen Datensatz sehr gut.
Das oben bereitgestellte Tabellenskript enthält ein Skript zum Hinzufügen einiger weiterer Datenzeilen, "Zeilen hinzufügen".
Diese sollten als Ausreißer betrachtet oder zumindest als keinem der drei Hauptcluster zugehörig identifiziert werden. So etwas wie der "-1"-Cluster in HDBSCAN.
Das Hinzufügen dieser zusätzlichen Punkte scheint bei der Single-Linkage-Methode (bei der Suche nach 3 oder 4 Clustern) Chaos zu verursachen.
Irgendeine Idee, wie man das vermeiden kann?


- Philipp
Einzelverbindung. Sie müssen wissen, wie viele Cluster Sie möchten, zum Beispiel 3, sonst werden die Spiralarme in mehr zerlegt.
Hierarchical Cluster(
Y( :X, :Y ),
Method( "Single" ),
Standardize Data( 1 ),
Color Clusters( 1 ),
Dendrogram Scale( "Distance Scale" ),
Number of Clusters( 3 )
)
Dendrogram with cluster colorsDendrogram with cluster colorsDendrogram with cluster colorsDendrogramm mit Clusterfarben
Graph with cluster colorsGraph with cluster colorsGraph with cluster colors Diagramm mit Clusterfarben
Ich denke, dieser Artikel könnte helfen, ich habe gerade weit genug gelesen, um zu sehen, dass "Kette" erwähnt wird.
https://stats.stackexchange.com/questions/195446/choosing-the-right-linkage-method-for-hierarchical-clustering