closeness_centrality#

closeness_centrality(G, u=None, distance=None, wf_improved=True)[source]#

计算节点的接近中心性。

节点 u 的接近中心性 [1] 是所有 n-1 个可达节点到 u 的平均最短路径距离的倒数。

其中 d(v, u)vu 之间的最短路径距离, n-1 是从 u 可达的节点数。注意,接近距离函数计算有向图中到 u 的入向距离。要使用出向距离,请对 G.reverse() 进行操作。

注意,接近中心性的值越高表示中心性越高。

Wasserman 和 Faust 提出了一种针对多连通分量图的改进公式。结果是“可达参与者比例与可达参与者平均距离的比率” [2]。您可能会认为这个比例因子是颠倒的,但实际上不是。这样,来自小分量的节点会得到较小的接近中心性值。设 N 表示图中的节点数,

Parameters:
G

一个 NetworkX 图

u节点, 可选

仅返回节点 u 的值

distance边属性键, 可选 (默认=None)

使用指定的边属性作为最短路径计算中的边距离。如果为 None (默认),所有边的距离为 1。缺少边属性的边被赋予距离 1。注意,不会检查边是否具有提供的属性。

wf_improved布尔值, 可选 (默认=True)

如果为 True,按可达节点比例进行缩放。这给出了 Wasserman 和 Faust 的改进公式。对于单分量图,它与原始公式相同。

Returns:
nodes字典

包含节点及其接近中心性值的字典。

Notes

接近中心性被归一化为 (n-1)/(|G|-1) ,其中 n 是包含节点的图的连通部分的节点数。如果图不是完全连通的,此算法分别计算每个连通部分的接近中心性,并按该部分的大小进行缩放。

如果设置了 ‘distance’ 关键字为边属性键,则最短路径长度将使用 Dijkstra 算法计算,该边属性作为边权重。

接近中心性使用节点的 入向 距离,而不是出向距离。如果需要使用出向距离,请对 G.reverse() 应用该函数。

在 NetworkX 2.2 及更早版本中,一个错误导致 Dijkstra 算法使用出向距离而不是入向距离。如果您使用 ‘distance’ 关键字和 DiGraph,您的结果将在 v2.2 和 v2.3 之间发生变化。

References

[1]

Linton C. Freeman: Centrality in networks: I. Conceptual clarification. Social Networks 1:215-239, 1979. https://doi.org/10.1016/0378-8733(78)90021-7

[2]

pg. 201 of Wasserman, S. and Faust, K., Social Network Analysis: Methods and Applications, 1994, Cambridge University Press.

Examples

>>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)])
>>> nx.closeness_centrality(G)
{0: 1.0, 1: 1.0, 2: 0.75, 3: 0.75}