Agrupamento de dados de tipo misto com R

19

Gostaria de saber se é possível executar no R um agrupamento de dados com variáveis ​​de dados mistas. Em outras palavras, tenho um conjunto de dados contendo variáveis ​​numéricas e categóricas e estou encontrando a melhor maneira de agrupá-las. No SPSS, eu usaria o cluster em duas etapas. Gostaria de saber se em R posso encontrar técnicas semelhantes. Foi-me dito sobre o pacote poLCA, mas não tenho certeza ...

Giorgio Spedicato
fonte
1
O SPSS TwoStep não foi projetado para lidar com grandes conjuntos de dados? (I fornecer uma resposta a uma pergunta relacionada aqui .) Caso contrário, seria a minha resposta a ser aplicada análise de componentes principais Can para conjuntos de dados contendo uma mistura de variáveis contínuas e categóricas? de alguma ajuda?
chl
Dentro do cluster de pacotes R, existe um margarida que criará uma matriz de dissimilaridade para dados mistos (coeficiente de similaridade de Gower). Então você pode usar ? Agnes ou outras funções de cluster.
Rhd
1
Não confunda método com implementação. Primeiro, procure um algoritmo de agrupamento que faça sentido. Em seguida, procure um pacote R que o implemente.
shadowtalker
A semelhança de Gower pode ser usada.
ttnphns
A @gung encerrou recentemente uma pergunta muito semelhante que eu fiz. Disseram-me que minha pergunta estava fora de tópico porque era predominantemente sobre software. Isso parece ser similar sobre o software. Eu ficaria muito interessado em saber por que as regras aqui estão sendo aplicadas de maneira inconsistente. Veja bem, acho que a pergunta é informativa, mas as regras devem ser as regras.
Weiwen Ng 27/02

Respostas:

8

Isso pode chegar tarde, mas tente o klaR ( http://cran.r-project.org/web/packages/klaR/index.html )

install.packages("klar")

Ele utiliza os não-hierárquica k-modos algoritmo, que é baseado na simples correspondente como uma função de distância, de modo que a distância entre uma δ variável m de dois pontos de dados e é dada pelaxy

δ(xm,ym)={1xmym,0 0de outra forma

Existe uma falha no pacote, ou seja, se dois pontos de dados têm a mesma distância de um centro de cluster, o primeiro em seus dados é escolhido em oposição a um ponto aleatório, mas você pode modificar facilmente o bit no código.

Para acomodar o cluster de variáveis ​​mistas, você precisará entrar no código e modificar a função de distância para identificar modos e variáveis ​​numéricos e não numéricos.

victor_v
fonte
7

Outra maneira atraente de lidar com variáveis ​​de tipos mistos é usar a matriz de proximidade / similaridade da Random Forests: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Isso facilita uma maneira unificada de tratar igualmente todas as variáveis ​​(no entanto, esteja ciente da questão do viés de seleção de variáveis). Por outro lado, não existe realmente uma maneira universal de ouro de definir a distância para variáveis ​​de tipos mistos. Tudo depende dos contextos do aplicativo.

XGS
fonte
4

Você pode usar várias análises de correspondência para criar dimensões contínuas a partir das variáveis ​​categóricas e depois usá-las com as variáveis ​​numéricas em uma segunda etapa.

ftr
fonte
1
Como você trataria variáveis ​​numéricas no MCA? Usando discretização?
chl
Existem extensões de MCA que podem incluir as variáveis contínuas, ver, por exemplo HOMALS análise de homogeneidade
b Kjetil HALVORSEN
3

Bem, você certamente pode. Tornando as variáveis ​​categóricas artificialmente numéricas. Ou usando um cluster baseado em matriz de distância (o fpc provavelmente pode fazer isso). A pergunta que você deve primeiro tentar responder é: isso realmente faz sentido?

Anony-Mousse -Reinstate Monica
fonte
3

jk

SG=Eu=1nWEu,j,ksEu,j,kEu=1nWEu,j,k
Eu

WEu,j,k

sEu,j,k

  • WEu,j,k

  • caracteres de vários estados (nominal ou ordinal): 1 para igualdade, 0 mais (equivalente ao coeficiente de correspondência simples)

  • sEu,j,k=1-|XEu,j-XEu,k|REuREuEu

SG

1-SG

Engelbert Buxbaum
fonte
Você pode definir o que é "personagem" (e "personagem cardinal") na sua resposta? Com isso, você quer dizer variável / atributo / recurso? Além disso, devo acrescentar que Gower pode ser calculado para variáveis ​​ordinais sem tratá-las como nominais ("multiestados"), veja .
ttnphns
Caracter, variável, recurso são todos sinônimos. Cardinal significa intervalo ou escala racional.
Engelbert Buxbaum
Obrigado por esclarecê-lo. Eu apenas perguntei porque sua terminologia aparentemente não é muito comum em estatística ou aprendizado de máquina: "caractere" é incomum, e o que você chama de tipo de variável "cardinal" é normalmente conhecido como variável "scale" ou variável "métrica", em vez de categórica .
ttnphns
1

Se os possíveis valores de variáveis ​​categóricas não forem muitos, pense em criar variáveis ​​binárias a partir desses valores. Você pode tratar essas variáveis ​​binárias como variáveis ​​numéricas e executar seu armazenamento em cluster. Foi o que fiz no meu projeto.

Raghvendra
fonte
0

VarSelLCM ofertas de pacotes

Seleção de variável para clustering baseado em modelo de conjunto de dados de tipo misto com valores ausentes

No CRAN , e descrito mais em papel .

A vantagem sobre alguns dos métodos anteriores é que ele oferece ajuda na escolha do número de clusters e manipula dados ausentes. O aplicativo brilhante e agradável fornecido também não deve ser desaprovado.

insira a descrição da imagem aqui

radek
fonte