Ich habe eine (symmetrische) Matrix M
, die den Abstand zwischen jedem Knotenpaar darstellt. Zum Beispiel,
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
Gibt es eine Methode zum Extrahieren von Clustern M
(bei Bedarf kann die Anzahl der Cluster festgelegt werden), sodass jeder Cluster Knoten mit kleinen Abständen zwischen ihnen enthält. Im Beispiel wären die Cluster (A, B, C, D)
, (E, F, G, H)
und (I, J, K, L)
.
Ich habe bereits UPGMA und k
-means ausprobiert, aber die resultierenden Cluster sind sehr schlecht.
Die Entfernungen sind die durchschnittlichen Schritte, die ein Zufallsläufer unternehmen würde, um von Knoten A
zu Knoten B
( != A
) und zurück zu Knoten zu gelangen A
. Es ist garantiert, dass M^1/2
es sich um eine Metrik handelt. Um k
-means auszuführen, benutze ich den Schwerpunkt nicht. Ich definiere die Entfernung zwischen n
Knotencluster c
als die durchschnittliche Entfernung zwischen n
und allen Knoten in c
.
Danke vielmals :)