katz_centrality_numpy#

katz_centrality_numpy(G, alpha=0.1, beta=1.0, normalized=True, weight=None)[源代码]#

计算图G的katz中心性。

Katz中心性基于其邻居的中心性来计算节点的中心性。它是特征向量中心性的推广。结点的Katz中心性 \(i\)

\[x i=\alpha\sum j a i j x j+\beta,\]

哪里 \(A\) 是图G的具有特征值的邻接矩阵 \(\lambda\)

该参数 \(\beta\) 控制初始中心度和

\[\α<\frac 1 \lambda \max。\]

katz centrality通过测量相邻节点(一级节点)和网络中通过这些相邻节点连接到考虑中节点的所有其他节点的数量,计算网络中节点的相对影响。

可通过参数将额外权重提供给紧邻的邻居 \(\beta\) 。然而,与远方邻居建立的连接会受到衰减系数的影响 \(\alpha\) 它应该严格小于邻接矩阵的逆最大特征值,以便正确地计算Katz中心性。有关详细信息,请参阅 [1].

参数
G图表

网络X图表

alpha浮动

衰减系数

beta标量或字典,可选(默认为1.0)

权重归因于邻近的邻居。如果不是标量,则字典必须为每个节点都有一个值。

normalized布尔尔

如果为True,则规格化结果值。

weight无或字符串,可选

如果没有,则所有边权重被视为相等。否则,保留用作权重的边属性的名称。在这种测量中,重量被解释为连接强度。

返回
nodes词典

以Katz中心性为值的节点字典。

加薪
NetworkXError

如果参数 beta 不是标量,但至少缺少一个节点的值

笔记

Katz中心性是由 [2].

该算法使用直接线性求解器来求解上述方程。该参数 alpha 应严格小于邻接矩阵最大特征值的倒数才能有解。您可以使用 max(nx.adjacency_spectrum(G)) 得到 \(\lambda_{{\max}}\) 邻接矩阵的最大特征值。

什么时候 \(\alpha = 1/\lambda_{{\max}}\)\(\beta=0\) ,Katz中心性与特征向量中心性相同。

对于有向图,这会找到对应于图中边的“左”特征向量。对于外缘,katz中心性首先用 G.reverse() .

工具书类

1

马克·E·J·纽曼:网络:简介。牛津大学出版社,美国,2010年,第173页。

2

利奥·卡茨:一种从社会计量指数衍生的新地位指数。《心理学》18(1):39-43,1953年https://link.springer.com/content/pdf/10.1007/BF02289026.pdf

实例

>>> import math
>>> G = nx.path_graph(4)
>>> phi = (1 + math.sqrt(5)) / 2.0  # largest eigenvalue of adj matrix
>>> centrality = nx.katz_centrality_numpy(G, 1 / phi)
>>> for n, c in sorted(centrality.items()):
...     print(f"{n} {c:.2f}")
0 0.37
1 0.60
2 0.60
3 0.37