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 ...


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 @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.


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.


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.


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?


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


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.



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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.