Eu tenho uma matriz (simétrica) Mque representa a distância entre cada par de nós. Por exemplo,
ABCDEFGHIJKL A 0 20 20 20 40 60 60 60 100 120 120 120 B 20 0 20 20 60 80 80 80 120 140 140 140 C 20 20 0 20 60 80 80 80 120 140 140 140 D 20 20 20 0 60 80 80 80 120 140 140 140 E 40 60 60 60 0 20 20 20 60 80 80 80 F 60 80 80 80 20 0 20 20 40 60 60 60 G 60 80 80 80 20 20 0 20 60 80 80 80 H 60 80 80 80 20 20 20 0 60 80 80 80 I 100 120 120 120 60 40 60 60 0 20 20 20 J 120 140 140 140 80 60 80 80 20 0 20 20 K 120 140 140 140 80 60 80 80 20 20 0 20 L 120 140 140 140 80 60 80 80 20 20 20 0
Existe algum método para extrair clusters M(se necessário, o número de clusters pode ser corrigido), de modo que cada cluster contenha nós com pequenas distâncias entre eles. No exemplo, os clusters seria (A, B, C, D), (E, F, G, H)e (I, J, K, L).
Eu já tentei UPGMA e k-means, mas os clusters resultantes são muito ruins.
As distâncias são os passos médios que um caminhante aleatório tomaria para ir de nó Aem nó B( != A) e voltar ao nó A. É garantido que M^1/2é uma métrica. Para rodar k-means, eu não uso o centróide. Defino a distância entre o ncluster de nós ccomo a distância média entre ne todos os nós c.
Muito obrigado :)

