Tengo una matriz (simétrica) M
que 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 A
a otro B
( != A
) y regresar al nodo A
. Está garantizado que M^1/2
es una métrica. Para ejecutar k
-means, no uso el centroide. Defino la distancia entre el n
grupo de nodos c
como la distancia promedio entre n
y todos los nodos c
.
Muchas gracias :)