eigenvector_centrality#

eigenvector_centrality(G, max_iter=100, tol=1e-06, nstart=None, weight=None)[源代码]#

计算图形的特征向量中心性 G .

特征向量中心性基于其邻居的中心性来计算节点的中心性。节点的特征向量中心性 \(i\) 是不是 \(i\) -向量的第4个元素 \(x\) 由方程式定义

\[AX=λx\]

哪里 \(A\) 是图的邻接矩阵 G 带本征值 \(\lambda\) 。根据Perron-Frobenius定理,存在唯一解 \(x\) ,则其所有条目均为正,如果 \(\lambda\) 是邻接矩阵的最大特征值 \(A\) ([2]) 。

参数
G图表

网络X图

max_iter整数,可选(默认值=100)

幂方法中的最大迭代次数。

tol浮点,可选(默认值=1.0E-6)

在幂方法迭代中用于检验收敛的误差容差。

nstart词典,可选(默认=无)

每个节点的特征向量迭代的起始值。

weight无或字符串,可选(默认值=无)

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

返回
nodes词典

以特征向量中心度为值的节点字典。

加薪
NetworkXPointlessConcept

如果图表 G 是空图。

NetworkXError

如果每个值 nstart 是零。

PowerIterationFailedConvergence

如果算法在幂迭代法的指定迭代次数内未能收敛到指定的容差。

参见

eigenvector_centrality_numpy
pagerank
hits

笔记

这项措施是由 [1] 并在中讨论了 [2].

特征向量的计算采用幂迭代法,收敛速度为 not 有保证。我们的方法在以下情况下停止 max_iter 迭代或当计算的向量在两次迭代之间的变化小于误差容限时 G.number_of_nodes() * tol 。此实现使用 (\(A + I\) )而不是邻接矩阵 \(A\) 因为它改变了频谱,即使对于具有多个主要特征值的网络,也能够辨别出正确的特征向量。

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

工具书类

1

菲利普·博纳奇。权力与中心性:一系列衡量标准。” 美国社会学杂志 92(5):1170–1182,1986<http://www.leonidzhukov.net/hse/2014/socialnetworks/papers/bonacich-centrality.pdf>

2(1,2)

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

实例

>>> G = nx.path_graph(4)
>>> centrality = nx.eigenvector_centrality(G)
>>> sorted((v, f"{c:0.2f}") for v, c in centrality.items())
[(0, '0.37'), (1, '0.60'), (2, '0.60'), (3, '0.37')]