Ho una matrice (simmetrica) M
che rappresenta la distanza tra ogni coppia di nodi. Per esempio,
ABCDEFGHIJKL A 0 20 20 20 40 60 60 60 100 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
Esiste un metodo per estrarre i cluster M
(se necessario, è possibile correggere il numero di cluster), in modo tale che ciascun cluster contenga nodi con piccole distanze tra loro. Nell'esempio, i cluster sarebbero (A, B, C, D)
, (E, F, G, H)
e (I, J, K, L)
.
Ho già provato UPGMA e k
-means ma i cluster risultanti sono molto cattivi.
Le distanze sono i passi medi che un camminatore casuale dovrebbe prendere per passare da un nodo A
all'altro B
( != A
) e tornare al nodo A
. È garantito che M^1/2
è una metrica. Per eseguire k
-means, non uso il centroide. Definisco la distanza tra il n
cluster di nodi c
come la distanza media tra n
e tutti i nodi in c
.
Molte grazie :)