Tengo una matriz (simétrica) Mque representa la distancia entre cada par de nodos. Por ejemplo,
ABCDEFGHIJKL A 0 20 20 20 40 60 60 60100120120120 B 20 0 20 20 60 80 80 80120140140140 C 20 20 0 20 60 80 80 80120140140140 D 20 20 20 0 60 80 80 80120140140140 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 100120120120 60 40 60 60 0 20 20 20 J 120140140140 80 60 80 80 20 0 20 20 K 120140140140 80 60 80 80 20 20 0 20 L 120140140140 80 60 80 80 20 20 20 0
¿Existe algún método para extraer grupos de M(si es necesario, el número de grupos se puede arreglar), de modo que cada grupo contenga nodos con pequeñas distancias entre ellos. En el ejemplo, los grupos serían (A, B, C, D), (E, F, G, H)y (I, J, K, L).
Ya probé UPGMA y k-significa pero los grupos resultantes son muy malos.
Las distancias son los pasos promedio que un caminante aleatorio tomaría para ir de un nodo Aa otro B( != A) y regresar al nodo A. Está garantizado que M^1/2es una métrica. Para ejecutar k-means, no uso el centroide. Defino la distancia entre el ngrupo de nodos ccomo la distancia promedio entre ny todos los nodos c.
Muchas gracias :)

