Re : Clustering basé sur la densité ?L'algorithme de wikipedia semble fonctionner. Je ne sais pas pourquoi il doit utiliser une notation étrange comme
SeedSet S := N \ {P} mais c'est peut-être la notation d'ensemble standard pour supprimer P de l'ensemble N?
Je l'ai exécuté plusieurs fois sur des données aléatoires et j'ai obtenu des résultats comme celui-ci pour un anneau et 10 clusters placés au hasard
always using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfalways using the same eps and minpts, one time the ring separated in halfen utilisant toujours les mêmes eps et minpts, une fois l'anneau s'est séparé en deux
Il peut devenir trop lent autour de 10 000 points, selon les données et le paramètre eps. Je ne suis pas sûr qu'il soit considéré comme non supervisé; J'ai passé pas mal de temps à choisir des eps et des minpts pour que ces graphiques fonctionnent aussi bien.
Re : Clustering basé sur la densité ?Le wikipédia code et la fonction KDTable de JMP semble pouvoir le faire. Cela pourrait être assez rapide car la recherche KDTable ferait beaucoup de travail.
@DonMcCormack cela pourrait être un bon défi, en particulier la partie où il est transformé en un complément avec une boîte de dialogue de lancement appropriée et placé dans le système de menus.
Re : Clustering basé sur la densité ?Salut @Craige_Hales
Je ne savais pas que cette fonctionnalité existait !Malheureusement, il semble sélectionner les régions à haute densité de tous les clusters, ce qui, bien que pratique, n'est pas tout à fait ce que je recherche.
Merci!
Re : Clustering basé sur la densité ?Bonne trouvaille @Craige_Hales ,
J'étais confus de voir comment j'avais raté cela après avoir essayé toutes les méthodes, mais maintenant je vois qu'il y a un bogue dans la plate-forme, donc enregistrer le grappe donne une bonne séparation pour les anneaux, mais en économisant formule de cluster montre un résultat différent.Comme vous l'avez mentionné, bien que je trouve l'utile, cela ne fonctionne pas tout à fait dans mon application actuelle.

Merci!
Re : Clustering basé sur la densité ?Salut et merci @Thierry_S ,
Oui, en effet, la transformation en polaire donnerait une grande séparation pour ces deux ensembles de données. Le problème est que cela ne fonctionne que pour cet exemple d'ensemble de données et qu'il est vraiment plus proche d'une méthode supervisée que ce que j'espère.J'ai utilisé les anneaux parce qu'ils illustrent ma lutte avec les méthodes existantes, mais en fait, les données réelles sont plus désordonnées, dans plus de dimensions, et une simple transformation ne ferait pas tout à fait l'affaire.
Comme une prise pour amener plus de gens à voter pour le regroupement basé sur la densité élément de la liste de souhaits, vérifiez comment il se compare aux différentes méthodes sur le lien ci-dessous. Je peux attester de voir des performances similaires dans certaines situations.
https://towardsdatascience.com/how-dbscan-works-and-why-should-i-use-it-443b4a191c80
Re : Clustering basé sur la densité ?De plus, la méthode de liaison simple hiérarchique fonctionnait parfaitement sur les anneaux disjoints. Pas le 2ème exemple cependant.
Re : Clustering basé sur la densité ?densité non par bivariée
puis sélectionnez les points par densité

Re : Clustering basé sur la densité ?Salut moi,
Avez-vous envisagé de transformer vos données en coordonnées polaires, puis de les regrouper sur R et alpha ? Au moins avec vos exemples de données, cela fait un très bon travail.
Acclamations,
TSClustering basé sur la densité ?Est-il possible de séparer les cercles concentriques illustrés dans l'exemple de tableau ci-dessous à l'aide de l'une des méthodes de regroupement dans JMP ?Il existe déjà une demande de liste de souhaits JMP pour DBSCAN, ou regroupement spatial basé sur la densité d'applications avec bruit, qui pourrait le faire.Me manque-t-il une fonctionnalité existante ?
Article de la liste de souhaits : regroupement basé sur la densité

Script pour créer un exemple de table de données :
Voir plus...
Je sais que je pourrais entraîner un modèle à le faire si je voyais la relation visuellement et que je voulais juste marquer des points contre elle, mais je veux une méthode non supervisée pour le faire.
Voici un autre exemple de jeu de données :

Voir plus...
New Table( "Cluster Circles 2",
Add Rows( 500 ),
New Script(
"x by y",
Graph Builder(
Size( 527, 456 ),
Show Control Panel( 0 ),
Variables( X( :x ), Y( :y ), Color( :actual cluster ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
)
),
New Column( "x",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( :actual cluster == 1,
2 * :random noise * Cos( :random ),
1 * :random noise * Cos( :random / 2 ) + 0.1
)
)
),
New Column( "y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( :actual cluster == 1,
2 * :random noise * Sin( :random ),
1 * :random noise * Sin( :random / 2 ) + 0.1
)
),
Set Selected
),
New Column( "random",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Random Uniform( 0, 0.8 * Pi() ) )
),
New Column( "random noise",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Random Normal( 1, 0.1 ) )
),
New Column( "actual cluster",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( Floor( Random Uniform( 0, 1.99999 ) ) )
)
)
New Table( "Cluster Circles 2", Add Rows( 500 ), New Script( "x by y", Graph Builder( Size( 527, 456 ), Show Control Panel( 0 ), Variables( X( :x ), Y ( :y ), Color( :actual cluster ) ), Elements( Points( X, Y, Legend( 5 ) ) ) ) ), New Column( "x", Numeric, "Continuous", Format( "Best", 12 ), Formule( If( :actual cluster == 1, 2 * :random noise * Cos( :random ), 1 * :random noise * Cos( :random / 2 ) + 0.1 ) ) ), New Column( "y" , Numeric, "Continuous", Format( "Best", 12 ), Formula( If( :actual cluster == 1, 2 * :random noise * Sin( :random ), 1 * :random noise * Sin( :random / 2 ) + 0.1 ) ), Set Selected ), New Column( "random", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Uniform( 0, 0.8 * Pi() ) ) ), New Colonne( "bruit aléatoire", numérique, "Continu", Format( "Meilleur", 12 ), Formule( Aléatoire Normal( 1, 0.1 ) ) ), Nouvelle Colonne( "cluster réel", Numérique, "Nominal", Format( "Meilleur", 12 ), Formule( Plancher( Aléatoire Uniforme( 0, 1.99999 ) ) ) ) )
Modélisation statistique avancéeÉtudes de consommation et de marchéIngénierie de la qualité et des procédés