Alguma sugestão para o método de agrupamento para número desconhecido de clusters e distância não euclidiana?


8

Preciso de algumas sugestões para o método de agrupamento (classificação não supervisionada) para um projeto de consultoria. Estou procurando um método que esperançosamente tenha as seguintes propriedades:

  1. O assunto do meu estudo tem três propriedades. Um é representado por uma matriz de distância (não-euclidiana) e os outros dois estão na forma de vetores no espaço euclidiano. A matriz de distância vem de sequências e pode estar na forma de porcentagem de dissimilaridade ou outra medida da distância de sequências. O algoritmo deve ser capaz de pegar os vetores no espaço euclidiano e a distância não euclidiana como entrada. Por exemplo, o K-medoids pode funcionar com uma matriz de distância, mas o K-means não pode.

  2. Gostaria que o algoritmo selecionasse o número de clusters e o peso para três propriedades automaticamente (com conhecimento e restrição anteriores).

  3. Eu tenho informações de "centros de clusters" identificados anteriormente. Eu gostaria de incorporá-lo como valores anteriores ou iniciais.

  4. Como estatístico, eu preferiria que o método tivesse uma função clara de probabilidade ou perda.

A coisa mais próxima que consigo pensar é ajustar um modelo de mistura na estrutura bayesiana usando o MCMC de salto reverso para determinar o número de clusters. Os vetores em R ^ d podem ser facilmente formulados com uma probabilidade normal, mas como lidar com a matriz de distância não está claro para mim. Posso restringir a média da probabilidade normal de cada observação de obter o MCMC funcionando, mas isso não tem um significado matemático / estatístico claro.

Alguém tem experiência com um problema semelhante? Sugestões para referências serão muito apreciadas!


Por que não projetar os vetores não euclidianos no espaço euclidiano?
Zach

Respostas:


4

Penso que usar um critério MAP / Bayesiano em combinação com uma mistura de gaussianos é uma escolha sensata. Pontos

Obviamente, você objetará que os MOGs exijam dados de entrada euclidianos . A resposta é encontrar um conjunto de pontos que dão origem à matriz de distância que você recebe. Um exemplo de técnica para isso é o dimensionamento multidimensional:argmin{xEu}Eu,j(||xEu-xj||2-DEuj)2 Onde DEuj é a distância do ponto Eu apontar j.


Obrigado. Estou usando uma abordagem semelhante! Acho que há um erro de digitação no seu post: não deve haver um quadrado no(xEu-xj).
Vulpecula 27/01

Por que não? É uma distância euclidiana, portanto, deve ser quadrada. No entanto, é uma norma, portanto tentarei deixar isso mais claro.
bayerj

1

Eu lidei com um problema da minha tese em que eu tinha que fazer cluster em um conjunto de dados para o qual eu só tinha uma matriz de similaridade (= distância inversa). Embora eu concorde 100% de que uma técnica bayesiana seria a melhor, o que eu usei foi um modelo discriminativo chamado Symmetric Convex Coding ( link ). Lembro-me de funcionar muito bem.

Na frente bayesiana, talvez você possa considerar algo semelhante ao agrupamento, mas não? Estou pensando na alocação de Dirichlet latente - um algoritmo realmente maravilhoso. Totalmente generativo, desenvolvido no contexto de modelagem de conteúdo de tópicos em corpora de documentos de texto. Mas encontra muitas aplicações em outros tipos de problemas não supervisionados de aprendizado de máquina. Claro, a função de distância nem é relevante lá ...


1

O DBSCAN funciona sem saber o número de clusters antes do tempo e pode aplicar uma ampla variedade de métricas de distância.


Obrigado pela sua resposta BTK, embora seja mais um comentário. Para torná-lo mais uma resposta, você pode adicionar um pouco mais de detalhes ao DBSCAN e como ele se aplica à pergunta específica em questão.
DL Dahly

1

Você pode usar propagação de afinidade ou melhor propagação de afinidade adaptável. Aqui está o link da Wikipedia .

Existem duas vantagens principais para o seu caso e outra terceira que eu acho que é uma vantagem, mas pode não ser importante para você.

  1. Você não fornece o número de clusters. O número final de clusters depende do valor da preferência e dos valores da matriz de similaridade. A maneira mais fácil de trabalhar com os valores de preferência é usar o valor mínimo da matriz de similaridade (que não é zero) para obter o menor número de clusters, depois tentar, por exemplo, o máximo para o maior número possível de clusters e continuar com a mediana value e assim por diante ... OU Use o algoritmo de propagação de afinidade adaptativa e tenha a preferência determinada pelo algoritmo.

  2. Você pode fornecer qualquer medida de semelhança que possa inventar ou tomar o inverso de uma medida de distância (talvez se proteja contra a divisão por zero ao fazer isso).

3. (ponto extra) O algoritmo escolhe um exemplo que representa cada cluster e quais exemplos pertencem a ele. Isso significa que o algoritmo não fornece uma média arbitrária, mas um ponto de dados real. No entanto, você ainda pode calcular as médias posteriormente, é claro. E isso também significa que o algoritmo não usa médias intermitentes!

Software: Existem vários pacotes listados para Java, Python e R na página da Wikipedia. Se você ama o MATLAB, como eu, aqui está uma implementação.

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.