Eu tenho um conjunto de dados de milhares de pontos e um meio de medir a distância entre dois pontos, mas os pontos de dados não têm dimensionalidade. Eu quero um algoritmo para encontrar centros de cluster neste conjunto de dados. Eu imagino que, como os dados não têm dimensões, um centro de cluster pode consistir em vários pontos de dados e uma tolerância, e a associação dentro do cluster pode ser determinada pela média da distância de um ponto de dados a cada ponto de dados no centro de cluster.
por favor me perdoe se esta pergunta tem uma solução bem conhecida, sei muito pouco sobre esse tipo de problema! minha pesquisa (muito limitada) só descobriu algoritmos de agrupamento para dados dimensionais, mas peço desculpas antecipadamente se perdi algo óbvio.
obrigado!
fonte
Respostas:
Esses dois problemas são difíceis de NP em geral e difíceis de aproximar-se de um fator arbitrário. Observe que, se você abandonar a condição de métrica, as coisas pioram muito em termos de aproximabilidade.
Por fim, como na maioria dos problemas de cluster, sua escolha final depende do aplicativo, do tamanho dos dados e assim por diante.
fonte
Também há clustering de correlação , que tem como informação de entrada para cada par de itens indicando se eles pertencem ao mesmo cluster ou a diferentes clusters.
fonte
Se você está apenas procurando um bom desempenho empírico, o algoritmo de propagação por afinidade geralmente funciona melhor do que k-medianas. Há código disponível em vários idiomas e publicações que descrevem o algoritmo em mais detalhes estão aqui: http://www.psi.toronto.edu/index.php?q=affinity%20propagation
fonte
Sua pergunta parece sugerir que você está procurando um algoritmo com tempo computacional decente. Dado o tamanho dos seus vértices (ou pontos), seria criar uma representação gráfica ponderada dos seus dados e usar o Algoritmo de Cluster de Markov (MCL) para agrupar o gráfico.
http://www.micans.org/mcl/
O MCL é baseado em passeios aleatórios através de gráficos ponderados e não ponderados para encontrar subgráficos densos. Ele é capaz de lidar com grandes gráficos e tem sido usado em muitos programas de bioinformática conhecidos e bem utilizados (como o BLAST). -Boucher
fonte
Considere o algoritmo vizinho k-mais próximo .
fonte