當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX eigenvector_centrality用法及代碼示例


本文簡要介紹 networkx.algorithms.centrality.eigenvector_centrality 的用法。

用法:

eigenvector_centrality(G, max_iter=100, tol=1e-06, nstart=None, weight=None)

計算圖 G 的特征向量中心性。

特征向量中心性根據其鄰居的中心性計算節點的中心性。節點 的特征向量中心性是由等式定義的向量 的第 元素

其中 是圖 G 與特征值 的鄰接矩陣。憑借 Perron-Frobenius 定理,如果 是鄰接矩陣 的最大特征值([2]),則存在唯一解 ,其所有條目均為正。

參數

G圖形

一個networkx圖

max_iter整數,可選(默認=100)

冪法中的最大迭代次數。

tol浮點數,可選(默認=1.0e-6)

誤差容限用於檢查冪法迭代中的收斂性。

nstart字典,可選(默認=無)

每個節點的特征向量迭代的起始值。

weight無或字符串,可選(默認=無)

如果沒有,所有的邊權重都被認為是相等的。否則保存用作權重的邊屬性的名稱。在這個度量中,權重被解釋為連接強度。

返回

nodes字典

以特征向量中心性為值的節點字典。

拋出

NetworkXPointlessConcept

如果圖 G 是空圖。

NetworkXError

如果nstart 中的每個值都為零。

PowerIterationFailedConvergence

如果算法在冪迭代法的指定迭代次數內未能收斂到指定的容差。

注意

該措施由 [1] 介紹,並在 [2] 中討論。

冪迭代法用於計算特征向量,收斂為不是保證。我們的方法在之後停止max_iter迭代或當兩次迭代之間計算向量的變化小於誤差容限時G.number_of_nodes() * tol.此實現使用 (\(A + I\) ) 而不是鄰接矩陣\(A\) 因為即使對於具有多個主要特征值的網絡,它也會改變頻譜以識別正確的特征向量。

對於有向圖,這是 “left” 特征向量中心性,對應於圖中的 in-edges。對於 out-edges 特征向量中心性,首先使用 G.reverse() 反轉圖形。

參考

1

Phillip Bonacich. “Power and Centrality: A Family of Measures.” American Journal of Sociology 92(5):1170-1182, 1986 <http://www.leonidzhukov.net/hse/2014/socialnetworks/papers/Bonacich-Centrality.pdf>

2(1,2)

Mark E. J. Newman. Networks: An Introduction. Oxford University Press, USA, 2010, pp. 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')]

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.centrality.eigenvector_centrality。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。