【发布时间】:2014-06-16 19:37:31
【问题描述】:
我试图使用 R 中的igraph 包计算图形的接近度。我用于计算的示例数据如下,
1 2
1 5
2 3
5 4
4 6
2 5
3 4
当我手动执行时,结果不匹配。这是igraph对closeness给出的定义:
接近度是最短路径平均长度的倒数 到/从图中的所有其他顶点
这是我手动计算 节点 1 的 closeness 的方法:
-
首先我计算从节点1到其他节点的最短路径:
节点1可以1步到达节点2,也是最短路径。
节点1可以1步到达节点5,也是最短路径。
节点 1 可以分 3 步到达节点 6,以此类推。
-
然后,我取这些最短路径的平均值:
(1 (1→2) + 1 (1→5) + 2 (1→3) + 2 (1→4) + 3 (1→6))/5 = (1+1+2+2+3)/5 = 9/5
最后我把它反转,给出的接近度值为 0.555
当我在 R 中从 igraph 包中运行 closeness 方法时,我为 Node 1 获得的结果是 0.1111。
谁能帮我找出我在计算中遗漏了什么?
【问题讨论】:
-
这很奇怪。
?closeness以您提供的文字给出定义,但帮助页面上的公式是1/sum( d(v,i), i != v)等于 0.1111 值,但它是逆和而不是逆平均值。也许给维护者发一封电子邮件? -
@GavinKelly 感谢您指出这一点。我给维护者发了邮件。
-
igraph 手册中的文字有误。而不是“按平均长度的倒数”,它应该是“按总长度长度的倒数”。