Ri: Clustering basato sulla densità?L'algoritmo di Wikipedia sembra funzionare. Non sono sicuro del motivo per cui è necessario utilizzare una notazione strana come
SeedSet S := N \ {P} ma forse questa è la notazione standard per rimuovere P dall'insieme N?
L'ho eseguito un sacco di volte su dati casuali e ho ottenuto risultati come questo per un anello e 10 cluster posizionati casualmente
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 halfusando sempre gli stessi eps e minpts, una volta l'anello si separò a metà
Potrebbe diventare troppo lento intorno ai 10.000 punti, a seconda dei dati e del parametro eps. Non sono sicuro che si qualifichi come senza supervisione; Ho passato una discreta quantità di tempo a scegliere eps e minpt per far funzionare bene questi grafici.
Ri: Clustering basato sulla densità?La wikipedia codice e la funzione KDTable di JMP sembra che possano farlo. Potrebbe essere piuttosto veloce poiché la ricerca KDTable farebbe gran parte del lavoro.
@DonMcCormack questa potrebbe essere una bella sfida, specialmente la parte in cui viene trasformato in un componente aggiuntivo con una finestra di dialogo di avvio adeguata e inserito nel sistema di menu.
Ri: Clustering basato sulla densità?CIAO @Craige_Hales
Non sapevo esistesse questa funzione!Sfortunatamente sembra selezionare le regioni ad alta densità di tutti i cluster che, sebbene a portata di mano, non è proprio quello che sto cercando.
Grazie!
Ri: Clustering basato sulla densità?Buona scoperta @Craige_Hales ,
Ero confuso su come mi sono perso questo dopo aver provato tutti i metodi, ma ora vedo che c'è un bug nella piattaforma, quindi salvando il file grappolo dà una buona separazione per gli anelli, ma risparmiando il formula a grappolo mostra un risultato diverso.Come hai detto, mentre troverò l'utile, non funziona del tutto nella mia applicazione attuale.

Grazie!
Ri: Clustering basato sulla densità?Ciao e grazie @Thierry_S ,
Sì, in effetti la trasformazione in polare darebbe una grande separazione per entrambi questi set di dati. Il problema è che funziona solo per questo set di dati di esempio ed è davvero più vicino a un metodo supervisionato di quanto spero.Ho usato gli anelli perché illustrano la mia lotta con i metodi esistenti, ma in realtà i dati reali sono più disordinati, in più dimensioni, e una semplice trasformazione non farebbe del tutto il lavoro.
Come spina per convincere più persone a votare per il clustering basato sulla densità elemento della lista dei desideri, controlla come si confronta con diversi metodi al link sottostante. Posso attestare di aver visto prestazioni simili in alcune situazioni.
https://towardsdatascience.com/how-dbscan-works-and-why-should-i-use-it-443b4a191c80
Ri: Clustering basato sulla densità?Inoltre, il metodo gerarchico del collegamento singolo ha funzionato perfettamente sugli anelli disgiunti. Non il secondo esempio però.
Ri: Clustering basato sulla densità?densità non pari bivariata
quindi selezionare i punti per densità

Ri: Clustering basato sulla densità?Ciao ih,
Hai preso in considerazione la possibilità di trasformare i tuoi dati in coordinate polari e quindi raggrupparli su R e alfa? Almeno con i tuoi dati di esempio, fa un ottimo lavoro.
Saluti,
STClustering basato sulla densità?È possibile separare i cerchi concentrici mostrati nella tabella di esempio sottostante utilizzando uno dei metodi di clustering in JMP?Esiste già una richiesta della lista dei desideri di JMP per DBSCAN, o clustering spaziale basato sulla densità di applicazioni con rumore, che potrebbe farlo.Mi mancano funzionalità esistenti?
Voce della lista dei desideri: clustering basato sulla densità

Script per creare una tabella dati di esempio:
Visualizza altro...
So che potrei addestrare un modello a farlo se vedessi visivamente la relazione e volessi solo segnare punti contro di essa, ma voglio un metodo senza supervisione per farlo.
Ecco un altro set di dati di esempio:

Visualizza altro...
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 ), Formula( If( :cluster effettivo == 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 ) ), Imposta selezionato ), Nuova colonna( "casuale", Numerico, "Continuo", Formato( "Migliore", 12 ), Formula( Uniforme casuale( 0, 0.8 * Pi() ) ) ), Nuovo Column( "rumore casuale", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Normal( 1, 0.1 ) ) ), New Column( "actual cluster", Numeric, "Nominal", Format( "Migliore", 12 ), Formula( Pavimento( Uniforme casuale( 0, 1.99999 ) ) ) )
Modellazione statistica avanzataConsumatori e ricerche di mercatoQualità e ingegneria di processo