Twitter的中间性是否同时考虑了关注者和关注者?

时间:2018-09-02 15:02:47

标签: graph graph-algorithm

我正在努力寻找Twitter上一组用户的中间性。

中间性中心度被视为出现在两个节点之间最短路径中的节点的比例

我对关键字“路径”或“边缘”是否表示他所关注的用户的关注者或关注者感到困惑。我打算使用jgrapht,但我对该概念尚不清楚。

预先感谢

1 个答案:

答案 0 :(得分:1)

中间性中心度衡量最短路径通过节点的比例。由于有向图无向图之间的最短路径的含义略有不同,因此您应该首先考虑如何将数据表示为图。

在没有针对您特定用例的进一步上下文的情况下,将Twitter图表示为有向图更为自然,在该图中,每个用户都表示为一个节点,并且边缘从每个用户延伸到所有用户,然后是该用户。当然,给定2个节点 u v ,可能有2个有向边( u v )和( v u ),前提是两个用户都互相关注。希望能解释边缘的含义。

在中介性中心度计算的上下文中引用“路径”一词时,其含义是该有向图中两个节点之间的一条最短路径

示例:

说我们有4个Twitter用户,分别是1、2、3和4。 说1跟随2和4,而2跟随3: enter image description here

然后,如果我们使用networkx,则可以如下计算中间性中心度:

import networkx as nx
DG = nx.DiGraph()
DG.add_edges_from([(1, 2), (2, 3), (1, 4)])
print(nx.betweenness_centrality(DG))

并获得:

{1: 0.0, 2: 0.16666666666666666, 3: 0.0, 4: 0.0}

意味着除节点2之外的所有其他节点的居中性为零,节点2的值为0.16667。 这是我们获得的值,因为我们只有一条通过节点2(从1到3)的最短路径,即N = 4和(N-1)(N-2) = 6。 要更好地了解nx.betweenness_centrality的工作原理,可以看一下here文档。