Clustering di dati di tipo misto con R


19

Mi chiedo se sia possibile eseguire in R un cluster di dati con variabili di dati misti. In altre parole, ho un set di dati contenente variabili numeriche e categoriche all'interno e sto trovando il modo migliore per raggrupparle. In SPSS utilizzerei un cluster a due passaggi. Mi chiedo se in R posso trovare tecniche simili. Mi è stato detto del pacchetto poLCA, ma non sono sicuro ...


1
SPSS TwoStep non è progettato per gestire set di dati di grandi dimensioni? (Fornisco una risposta a una domanda correlata qui .) Altrimenti, la mia risposta a L' analisi dei componenti principali può essere applicata a set di dati contenenti un mix di variabili continue e categoriali? di qualche aiuto?
chl

All'interno del cluster del pacchetto R è presente una "margherita" che creerà una matrice di dissomiglianza per i dati misti (coefficiente di somiglianza di Gower). Quindi è possibile utilizzare ? Agnes o altre funzioni di clustering.
rhonda,

1
Non confondere il metodo con l'implementazione. Per prima cosa cerca un algoritmo di clustering che abbia senso. Quindi cerca un pacchetto R che lo implementa.
Shadowtalker

È possibile utilizzare la somiglianza di Gower .
ttnphns,

@gung ha recentemente chiuso una domanda molto simile che ho posto. Mi è stato detto che la mia domanda era fuori tema perché riguardava principalmente il software. Questo sembra essere simile per il software. Sarei molto interessato a sapere perché le regole qui vengono applicate in modo incoerente. Intendiamoci, penso che la domanda sia informativa, ma le regole dovrebbero essere le regole.
Weiwen,

Risposte:


8

Questo potrebbe arrivare in ritardo, ma prova klaR ( http://cran.r-project.org/web/packages/klaR/index.html )

install.packages("klar")

Esso utilizza i non gerarchici k-modalità algoritmo, che si basa sulla corrispondenza semplice come una funzione distanza, in modo che la distanza tra δ una variabile m di due punti dati ed y è dato daxy

δ(xm,ym)={1xmym,0otherwise

Il pacchetto presenta un difetto, ovvero se due punti dati hanno la stessa distanza da un centro-cluster, il primo nei dati viene scelto anziché un punto casuale, ma è possibile modificare facilmente il bit nel codice.

Per adattarsi al clustering a variabili miste, è necessario accedere al codice e modificare la funzione di distanza per identificare modalità e variabili numeriche e non numeriche.


7

Un altro modo interessante di gestire variabili di tipo misto è utilizzare la matrice di prossimità / somiglianza di Random Forests: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Ciò facilita un modo unificato di trattare allo stesso modo tutte le variabili (tuttavia, tenere presente il problema di distorsione della selezione delle variabili). D'altra parte, non esiste davvero un modo universale d'oro per definire la distanza per variabili di tipo misto. Tutto dipende dai contesti applicativi.


4

È possibile utilizzare l'analisi della corrispondenza multipla per creare quote continue dalle variabili categoriali e quindi utilizzarle con le variabili numeriche in un secondo passaggio.


1
Come tratteresti le variabili numeriche in MCA? Usando la discretizzazione?
chl

Ci sono estensioni di MCA che possono includere variabili continue, vedi ad esempio omals di analisi di omogeneità
kjetil b halvorsen

3

Bene, certamente puoi. Rendendo artificialmente numeriche le variabili categoriche. O usando un clustering basato sulla matrice di distanza (fpc probabilmente può farlo). La domanda a cui dovresti prima provare a rispondere è: ha davvero senso?


3

jk

SG=i=1nwi,j,ksi,j,ki=1nwi,j,k
i

wi,j,k

si,j,k

  • wi,j,k

  • caratteri multi-stato (nominale o ordinale): 1 per uguaglianza, 0 altro (equivalente al coefficiente di corrispondenza semplice)

  • si,j,k=1|Xi,jXi,k|Ri with Ri the range of character i (either in the population or in the sample).

The nice thing about SG is that it can not only handle all types of data, but is also robust towards missing data. It also results in positive semi-definite similarity matrices, i.e., OTUs are represented by points in Euklidian space (at least if not too many data are missing).

The distance between OTUs can be represented by 1SG


Can you define what is "character" (and "cardinal character") in your answer? Do by that you mean variable/attribute/feature? Besides, I might add that Gower can be computed for ordinal variables without treating them as nominal ("multistate"), see.
ttnphns

Caracter, variable, feature are all synonyms. Cardinal means either interval or rational scale.
Engelbert Buxbaum

Thank you for claring it. I just asked because your terminology is apparently not very common in statistics or machine learning: "character" is unusual, and what you call "cardinal" variable type is typically known as "scale" variable aka "metrical" variable, it opposed to categorical.
ttnphns

1

If possible values of categorical variables are not too many, then you may think of creating binary variables out of those values. You can treat these binary variables as numeric variables and run your clustering. That's what I did for my project.



0

VarSelLCM package offers

Variable Selection for Model-Based Clustering of Mixed-Type Data Set with Missing Values

On CRAN, and described more in paper.

Advantage over some of the previous methods is that it offers some help in choice of the number of clusters and handles missing data. Nice shiny app provided is also not be frowned upon.

enter image description here

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.