Preciso usar variáveis binárias (valores 0 e 1) em médias k. Mas k-means funciona apenas com variáveis contínuas. Eu sei que algumas pessoas ainda usam essas variáveis binárias em k-means, ignorando o fato de que k-means é projetado apenas para variáveis contínuas. Isso é inaceitável para mim.
Questões:
- Então, qual é a maneira estatisticamente / matematicamente correta de usar variáveis binárias no k-means / cluster hierárquico?
- Como implementar a solução em SAS / R?
r
clustering
binary-data
k-means
mixed-type-data
GeorgeOfTheRF
fonte
fonte
Respostas:
Você está certo de que o cluster k-means não deve ser feito com dados de tipos mistos. Como o k-means é essencialmente um algoritmo de busca simples para encontrar uma partição que minimiza as distâncias euclidianas quadradas dentro do cluster entre as observações em cluster e o centróide do cluster, ela só deve ser usada com dados em que as distâncias euclidianas quadradas seriam significativas.
Quando seus dados consistem em variáveis de tipos mistos, você precisa usar a distância de Gower. O usuário do CV @ttnphns tem uma ótima visão geral da distância de Gower aqui . Em essência, você calcula uma matriz de distância para suas linhas para cada variável, por sua vez, usando um tipo de distância apropriado para esse tipo de variável (por exemplo, Euclidiano para dados contínuos, etc.); a distância final da linha a i ' é a média (possivelmente ponderada) das distâncias para cada variável. Uma coisa a ter em atenção é que a distância de Gower não é realmente uma métrica . No entanto, com dados mistos, a distância de Gower é em grande parte o único jogo na cidade.Eu Eu′
Nesse ponto, você pode usar qualquer método de cluster que possa operar sobre uma matriz de distância em vez de precisar da matriz de dados original. (Observe que o k-means precisa do último.) As opções mais populares são a partição em torno do medoids (PAM, que é essencialmente o mesmo que o k-means, mas usa a observação mais central em vez do centróide), várias abordagens hierárquicas de agrupamento (por exemplo, , mediana, ligação única e ligação completa; com cluster hierárquico, você precisará decidir onde ' cortar a árvore ' para obter as atribuições finais do cluster) e o DBSCAN, que permite formas de cluster muito mais flexíveis.
Aqui está uma
R
demonstração simples (nb, na verdade, existem 3 clusters, mas os dados geralmente se parecem com 2 clusters):Podemos começar pesquisando diferentes números de clusters com o PAM:
Esses resultados podem ser comparados aos resultados do armazenamento em cluster hierárquico:
O método mediano sugere 2 (possivelmente 3) grupos, o único suporta apenas 2, mas o método completo pode sugerir 2, 3 ou 4 ao meu olho.
Finalmente, podemos tentar o DBSCAN. Isso requer a especificação de dois parâmetros: eps, a 'distância de alcançabilidade' (a que distância duas observações devem ser conectadas) e minPts (o número mínimo de pontos que precisam ser conectados um ao outro antes que você queira chamá-los de 'grupo'). Uma regra prática para minPts é usar uma a mais que o número de dimensões (no nosso caso 3 + 1 = 4), mas não é recomendável ter um número muito pequeno. O valor padrão para
dbscan
é 5; nós vamos ficar com isso. Uma maneira de pensar sobre a distância de alcance é ver qual porcentagem das distâncias é menor que qualquer valor. Podemos fazer isso examinando a distribuição das distâncias:As próprias distâncias parecem agrupar-se em grupos visualmente discerníveis de 'mais perto' e 'mais longe'. Um valor de .3 parece distinguir mais claramente entre os dois grupos de distâncias. Para explorar a sensibilidade da saída a diferentes opções de eps, também podemos tentar .2 e .4:
O uso
eps=.3
fornece uma solução muito limpa, que (pelo menos qualitativamente) concorda com o que vimos nos outros métodos acima.Como não existe um cluster 1-ness significativo , devemos ter o cuidado de tentar corresponder quais observações são chamadas 'cluster 1' de diferentes agrupamentos. Em vez disso, podemos formar tabelas e se a maioria das observações chamadas 'cluster 1' em um ajuste for chamada 'cluster 2' em outro, veríamos que os resultados ainda são substancialmente semelhantes. No nosso caso, os diferentes agrupamentos são geralmente muito estáveis e colocam as mesmas observações nos mesmos agrupamentos de cada vez; somente o cluster hierárquico de ligação completo difere:
Obviamente, não há garantia de que qualquer análise de cluster recupere os verdadeiros clusters latentes em seus dados. A ausência dos verdadeiros rótulos de cluster (que estariam disponíveis em, por exemplo, uma situação de regressão logística) significa que uma enorme quantidade de informações não está disponível. Mesmo com conjuntos de dados muito grandes, os clusters podem não estar suficientemente bem separados para serem perfeitamente recuperáveis. No nosso caso, como conhecemos a verdadeira associação de cluster, podemos compará-la com a saída para ver como ela se saiu. Como observei acima, na verdade existem 3 clusters latentes, mas os dados dão a aparência de 2 clusters:
fonte
median method suggests 2 (possibly 3) clusters, the single only supports 2, but the complete method could suggest 2, 3 or 4
.. como você chega a isso? usando uma altura de 0,3?Veja este artigo de Finch, http://www.jds-online.com/files/JDS-192.pdf . Ele descreve tanto por que a aplicação de métodos contínuos a dados binários pode agrupar incorretamente os dados e, mais importante, quais são algumas opções nas funções de distância adequadas. Ele não responde como agrupar com k-means, mas como agrupar dados binários corretamente usando métricas não euclidianas e um método hierárquico como Ward.
fonte