我有一个(对称)矩阵M
,表示每对节点之间的距离。例如,
ABCDEFGHIJKL 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 我100120120120 60 40 60 60 0 20 20 20 J 120140140140 80 60 80 80 20 0 20 20 K 120 140 140 140 80 60 80 80 20 20 0 20 L 120140140140 80 60 80 80 20 20 20 0
是否有任何方法可以从中提取群集M
(如果需要,可以固定群集的数量),以使每个群集包含的节点之间的距离很小。在该示例中,聚类将是(A, B, C, D)
,(E, F, G, H)
和(I, J, K, L)
。
我已经尝试过UPGMA和k
-means,但是生成的群集非常糟糕。
距离是随机步行者从节点A
到节点B
(!= A
)再返回节点的平均步长A
。保证这M^1/2
是一个指标。运行k
-means,我不使用质心。我将节点n
簇之间的距离定义c
为中n
与所有节点之间的平均距离c
。
非常感谢 :)