1

我正在尝试使用 hclust 对图形的节点(C1、C2、C3 ...)进行聚类,我的相似度指标是节点之间的链接数。

我有类似的数据

c = matrix( c(0,1,3,1,0,5,3,5,0), nrow=3, ncol=3)

基本上这是一个相似度矩阵

    C1  C2  C3
C1  0   1   3
C2  1   0   5
C3  3   5   0

这是一个无向图,其中 C1 和 C3 之间的相似性为 3 个链接。我需要将此数据转换为合适的 dist.matrix

    C1  C2
C2  1
C3  1/3   1/5

基于我的相似性指标(两个节点之间的#links)的格式。我该怎么做呢?

4

2 回答 2

4

似乎您想使用基于边缘中间性的层次聚类。您可以直接在igraph.

library(igraph)
c  <- matrix( c(0,1,3,1,0,5,3,5,0), nc=3)
g  <- graph.adjacency(c,mode="undirected")
bc <- edge.betweenness.community(g)
par(mfrow=c(1,2))
plot(g)
plot(as.dendrogram(bc))

c  <- matrix(c(0,0,0,4,0, 
               0,0,0,1,0, 
               0,0,0,4,1, 
               4,1,4,0,3, 
               0,0,1,3,0),nc=5)
g  <- graph.adjacency(c,mode="undirected")
bc <- edge.betweenness.community(g)
plot(g)
plot(as.dendrogram(bc))

于 2014-11-19T01:40:35.027 回答
0

看看 daisy() 函数。http://www.inside-r.org/r-doc/cluster/daisy

于 2014-11-18T22:18:22.410 回答