Mam (symetryczną) macierz, M
która reprezentuje odległość między każdą parą węzłów. Na przykład,
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 120140 140 140 80 60 80 80 20 20 0 20 L 120 140 140 140 80 60 80 80 20 20 20 0
Czy istnieje metoda wyodrębniania klastrów M
(w razie potrzeby można ustalić liczbę klastrów), tak aby każdy klaster zawierał węzły o niewielkich odległościach między nimi. Na przykład, klastry byłoby (A, B, C, D)
, (E, F, G, H)
i (I, J, K, L)
.
Próbowałem już UPGMA i k
-means, ale powstałe klastry są bardzo złe.
Odległości są średnimi krokami, które wykonałby przypadkowy chodzik, aby przejść od węzła A
do węzła B
( != A
) i wrócić do węzła A
. Jest gwarantowane, że M^1/2
to metryka. Aby uruchomić k
-means, nie używam centroidu. Definiuję odległość między n
skupieniem węzłów c
jako średnią odległość między n
wszystkimi węzłami i c
.
Wielkie dzięki :)