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


Python NetworkX katz_centrality_numpy用法及代碼示例


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

用法:

katz_centrality_numpy(G, alpha=0.1, beta=1.0, normalized=True, weight=None)

計算圖 G 的 Katz 中心性。

Katz 中心性根據其鄰居的中心性計算節點的中心性。它是特征向量中心性的推廣。節點 的 Katz 中心性為

其中 是圖 G 的鄰接矩陣,其特征值為

參數 控製初始中心性和

Katz 中心性通過測量直接鄰居(一級節點)以及網絡中通過這些直接鄰居連接到所考慮節點的所有其他節點的數量來計算網絡中節點的相對影響。

可以通過參數 向直接鄰居提供額外的權重。然而,與遠方鄰居建立的連接會受到衰減因子 的懲罰,該衰減因子應嚴格小於鄰接矩陣的逆最大特征值,以便正確計算 Katz 中心性。 [1] 中提供了更多信息。

參數

G圖形

NetworkX 圖

alpha浮點數

衰減因子

beta標量或字典,可選(默認=1.0)

重量歸因於附近。如果不是標量,則字典必須為每個節點都有一個值。

normalizedbool

如果 True 標準化結果值。

weight無或字符串,可選

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

返回

nodes字典

以 Katz 中心性為值的節點字典。

拋出

NetworkXError

如果參數 beta 不是標量但缺少至少一個節點的值

注意

Katz 中心性由 [2] 引入。

該算法使用直接線性求解器來求解上述方程。參數alpha 應嚴格小於鄰接矩陣的最大特征值的倒數,以獲得解。您可以使用max(nx.adjacency_spectrum(G)) 得到鄰接矩陣的最大特征值

時,Katz 中心性與特征向量中心性相同。

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

參考

1

Mark E. J. Newman: Networks: An Introduction. Oxford University Press, USA, 2010, p. 173.

2

Leo Katz: A New Status Index Derived from Sociometric Index. Psychometrika 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

相關用法


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