group_betweenness_centrality#
- group_betweenness_centrality(G, C, normalized=True, weight=None, endpoints=False)[source]#
计算一组节点的组间中心性。
一组节点的组间中心性 \(C\) 是所有节点对的最短路径中通过 \(C\) 中任意节点的路径分数之和。
\[c_B(v) =\sum_{s,t \in V} \frac{\sigma(s, t|v)}{\sigma(s, t)}\]其中 \(V\) 是节点集合,\(\sigma(s, t)\) 是 \((s, t)\) 最短路径的数量,\(\sigma(s, t|C)\) 是通过 \(C\) 中某个节点的这些路径的数量。注意 \((s, t)\) 不是 \(C\) 的成员(\(V-C\) 是 \(V\) 中不在 \(C\) 中的节点集合)。
- Parameters:
- G图
一个 NetworkX 图。
- C列表或集合或列表的列表或集合的列表
包含属于 G 的节点的一个组或多个组,用于计算组间中心性。
- normalized布尔值, 可选 (默认=True)
如果为 True,组间中心性通过
1/((|V|-|C|)(|V|-|C|-1))
进行归一化,其中|V|
是 G 中的节点数量,|C|
是 C 中的节点数量。- weightNone 或字符串, 可选 (默认=None)
如果为 None,所有边的权重视为相等。 否则,持有用作权重的边属性的名称。 边的权重被视为两端之间的长度或距离。
- endpoints布尔值, 可选 (默认=False)
如果为 True,在最短路径计数中包括端点。
- Returns:
- betweenness浮点数或浮点数列表
如果 C 是一个单独的组,则返回一个浮点数。如果 C 是包含多个组的列表,则返回组间中心性的列表。
- Raises:
- NodeNotFound
如果 C 中的节点在 G 中不存在。
See also
Notes
组间中心性在 [1] 中描述,并在 [3] 中讨论其重要性。该算法的初始实现见 [2]。此函数使用 [4] 中提出的改进算法。
组中的节点数量最多为 n - 2,其中
n
是图中的总节点数。对于加权图,边权重必须大于零。零边权重可能导致无限数量的等长路径。
源和目标之间的总路径数在有向图和无向图中计算方式不同。有向图中 “u” 和 “v” 之间的路径计为两条可能的路径(每个方向一条),而无向图中 “u” 和 “v” 之间的路径计为一条路径。换句话说,上述表达式中的和在有向图中是所有
s != t
,在无向图中是所有s < t
。References
[1]M G Everett 和 S P Borgatti: The Centrality of Groups and Classes. Journal of Mathematical Sociology. 23(3): 181-201. 1999. http://www.analytictech.com/borgatti/group_centrality.htm
[2]Ulrik Brandes: On Variants of Shortest-Path Betweenness Centrality and their Generic Computation. Social Networks 30(2):136-145, 2008. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.9610&rep=rep1&type=pdf
[3]Sourav Medya 等人: Group Centrality Maximization via Network Design. SIAM International Conference on Data Mining, SDM 2018, 126–134. https://sites.cs.ucsb.edu/~arlei/pubs/sdm18.pdf
[4]Rami Puzis, Yuval Elovici, 和 Shlomi Dolev. “Fast algorithm for successive computation of group betweenness centrality.” https://journals.aps.org/pre/pdf/10.1103/PhysRevE.76.056709