Salut,
J'aimerais savoir quelle plate-forme de clustering, disponible dans JMP ou JMP Pro, est la mieux adaptée pour identifier les clusters à partir de ces données en spirale.

En utilisant HDBSCAN, je peux identifier correctement les clusters comme illustré ci-dessous mais j'aimerais utiliser JMP si possible :

Script de tableau ci-joint.
Merci jpol
Salut @jpol ,
Je suis tombé sur ce post et je l'ai trouvé très intéressant - je ne me souviens même plus de ce que je cherchais, mais c'était un post vraiment cool et merci pour l'ensemble de données original avec lequel jouer !J'ai essayé une autre approche, qui pourrait vous intéresser. Tout d'abord, j'ai ajouté quelques colonnes supplémentaires dans la table de données et en ai retiré d'autres dont je n'avais pas besoin. J'ai ajouté plus de données X et Y, mais avec du bruit, donc les spirales n'étaient pas si belles (juste pour rendre le problème plus difficile !
). J'ai même transformé les coordonnées X/Y en coordonnées R/thêta pour tester le regroupement et la modélisation, mais j'ai constaté que R et thêta n'amélioraient pas le regroupement ou la modélisation. Le tableau de données est également joint.
Vous avez raison de dire que ces points "aberrants" font des ravages avec la méthode de liaison unique dans le clustering hiérarchique, même lors de la normalisation des données. Je pense que c'est parce que ces points partagent quelque chose en commun avec le reste des données et finissent également par gonfler l'écart type des données dans cette colonne (c'est-à-dire X ou Y). Cependant, dans JMP 11, ils ont ajouté l'option Standardize Robustly qui fait ressortir encore plus les valeurs aberrantes. Je ne connais pas tout l'algorithme pour cela, mais je suppose que JMP effectue probablement une sorte de test de valeur aberrante T ^ 2, Jackknife ou KNN. En fait, si vous utilisez la plate-forme multivariée et effectuez un test T ^ 2, ou utilisez la plate-forme Explore Outlier et exécutez un test KNN, vous pouvez voir que les 5 points supplémentaires apparaissent comme des valeurs aberrantes potentielles. Le seul en question pourrait être celui du centre. Vous pouvez voir les rapports ci-dessous. Ils sont également enregistrés sous forme de scripts dans la table de données.


En bref, cochez Normaliser de manière robuste lorsque vous pensez avoir des valeurs aberrantes, cela minimisera l'impact des valeurs aberrantes lorsque JMP normalise les données. Lorsque vous obtenez le dendrogramme, vous pouvez sélectionner 8 clusters, et la plate-forme de clustering hiérarchique distinguera correctement les 5 points de données supplémentaires comme étant leurs propres clusters individuels. Voir ci-dessous le rapport HC de JMP. Vous pouvez voir que tous les clusters aberrants sont alignés sur un seul bras de constellation. Ils ne peuvent pas être placés dans leur propre cluster car ils ne partagent pas suffisamment de points communs entre eux tout en partageant trop de points communs avec le reste de l'ensemble de données. Vous devez toujours spécifier 8 clusters, sinon, il regroupera le point central et la spirale entière dans un cluster et les 4 points extérieurs chacun dans leur propre cluster.

Si vous aviez une troisième dimension de données - disons la luminosité des étoiles (je dis seulement cela parce que cela ressemble beaucoup à une image de galaxie) ou la coordonnée Z, alors vous pourriez l'ajouter aux données afin de permettre une autre méthode de distinction. Si vous savez à l'avance qu'il s'agit de valeurs aberrantes, vous pouvez toujours spécifier le nombre total de clusters - 8 dans ce cas - et le clustering hiérarchique les sélectionne très bien (lors d'une normalisation robuste). Si les points en question sont des choses comme des repères pour marquer des emplacements spécifiques sur une plaque photographique ou une disposition de transistor sur une plaquette Si, alors ceux-ci peuvent être supprimés de l'ensemble de données au départ. Mais c'est une connaissance a priori que vous devez d'une manière ou d'une autre inclure dans les données.
J'ai décidé de jouer avec cela un peu plus loin et de voir si un algorithme de machine pouvait sélectionner les clusters. Parmi les méthodes dont dispose JMP Pro, je pense que les machines à vecteurs de support pourraient être les meilleures car il faut des entrées numériques pour dériver les sorties de classification. Cet ensemble de données est essentiellement un problème de classification. Vous essayez de distinguer chaque bras de la spirale des autres bras.
En utilisant les clusters de la plate-forme de clustering hiérarchique comme sortie pour modéliser avec les entrées X et Y pour la plate-forme Support Vector Machine dans JMP Pro, j'ai pu modéliser parfaitement les différents clusters. Ne sachant pas quels paramètres exacts utiliser dans le modèle, j'ai fait une conception de réglage avec 40 exécutions et bien sûr, la plate-forme SVM a pu sélectionner les 8 clusters. Le tableau de contingence Clusters vs Clusters prédits a 0 erreurs de classification. *Mise à jour* : j'ai oublié de mentionner que j'ai également utilisé 50 % des données comme ensemble de validation lors de la formation du modèle SVM.
Voici la sortie du rapport SVM. Vous pouvez voir que chaque bras est identifié de manière unique ainsi que les 5 valeurs aberrantes supplémentaires.

En comparant les données colorées par la méthode HC et SVM, nous voyons qu'elles sont essentiellement identiques. (J'ai changé le type de marqueur pour les valeurs aberrantes en * donc c'était plus facile à voir).


Et, le tableau de contingence montre 0 erreurs de classification.

C'était un ensemble de données vraiment cool avec lequel jouer, et je vous remercie d'avoir posté cette question. Encore une fois, je ne me souviens même pas de ce que je cherchais à l'origine, mais j'ai trouvé cela très cool. Je pourrais essayer certaines des autres plates-formes et voir comment elles réussissent à modéliser/classifier ces données. Merci!
J'espère que ça aide!,
DS
**Mise à jour 2** :
Je suis donc revenu en arrière et j'ai testé l'ajustement de cet ensemble de données à l'aide de certaines des autres plates-formes de modélisation prédictive de JMP et les deux seules autres qui se sont rapprochées étaient les plates-formes d'arbre de décision et de forêt d'amorçage. Même dans ce cas, aucun d'entre eux ne fonctionne aussi bien que le modèle SVM. Les deux n'ont sélectionné que 3 clusters lors de la modélisation, les clusters sont presque les mêmes, mais pas tout à fait. Donc, en effet, SVM semble être le meilleur choix.


J'ai même essayé la nouvelle plate-forme XGBoost, qui ne fonctionne pas non plus très bien, étonnamment. J'ai essayé plusieurs options d'ajustement différentes, mais je ne l'ai peut-être pas optimisé aussi bien qu'il aurait pu l'être, car il existe de nombreux paramètres de réglage différents. Le mieux qu'il ait fait a été de classer les 3 bras de la spirale et une seule valeur aberrante, le reste a été mal classé. Ainsi, au final, le clustering HC pour obtenir la sortie et la modélisation SVM pour modéliser la sortie des spirales inconnues potentielles sont probablement les meilleurs. Beaucoup d'amusement!
Je ne suis pas l'expert ici; Je m'en remets aux autres. Je suppose que ce serait une passe distincte pour découvrir des points qui ne sont pas plus éloignés que la moyenne des autres points, mais cela échouerait s'il y avait deux valeurs aberrantes l'une à côté de l'autre, de sorte que leur groupe de deux devrait être testé ... peut-être le HDBSCAN fait quelque chose comme ça.
Pouvez-vous partager quel type de processus produit les amas en spirale ?
Merci Craig d'avoir indiqué la bonne méthode et le lien de l'article.
La méthode Single Link fonctionne très bien sur cet ensemble de données relativement propre.
Le script de table que j'ai fourni ci-dessus comprend un script pour ajouter quelques lignes de données supplémentaires, "Ajouter des lignes".
Ceux-ci doivent être considérés comme des valeurs aberrantes, ou du moins être identifiés comme n'appartenant à aucun des trois principaux clusters. Quelque chose comme le cluster "-1" dans HDBSCAN.
L'ajout de ces points supplémentaires semble faire des ravages avec la méthode de liaison unique (lors de la recherche de 3 ou 4 clusters).
Une idée de comment éviter cela?


- Philippe
Tringlerie unique. Vous aurez besoin de savoir combien de grappes vous voulez, 3 par exemple, ou cela divisera les bras en spirale en plus.
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 colorsDendrogramme avec des couleurs de cluster
Graph with cluster colorsGraph with cluster colorsGraph with cluster colors Graphique avec couleurs de cluster
Je pense que cet article pourrait aider, j'ai lu juste assez loin pour le voir mentionné "chaîne".
https://stats.stackexchange.com/questions/195446/choosing-the-right-linkage-method-for-hierarchical-clustering