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
笔记
特征向量的计算采用幂迭代法,收敛速度为 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')]