networkx.algorithms.centrality.katz_centrality
的用法。用法:
katz_centrality(G, alpha=0.1, beta=1.0, max_iter=1000, tol=1e-06, nstart=None, normalized=True, weight=None)
计算图 G 的节点的 Katz 中心性。
Katz 中心性根据其邻居的中心性计算节点的中心性。它是特征向量中心性的推广。节点 的 Katz 中心性为
其中 是图 G 的邻接矩阵,其特征值为 。
参数 控制初始中心性和
Katz 中心性通过测量直接邻居(一级节点)以及网络中通过这些直接邻居连接到所考虑节点的所有其他节点的数量来计算网络中节点的相对影响。
可以通过参数 向直接邻居提供额外的权重。然而,与远方邻居建立的连接会受到衰减因子 的惩罚,该衰减因子应严格小于邻接矩阵的逆最大特征值,以便正确计算 Katz 中心性。 [1] 中提供了更多信息。
- G:图形
NetworkX 图表。
- alpha:浮点数
衰减因子
- beta:标量或字典,可选(默认=1.0)
重量归因于附近。如果不是标量,则字典必须为每个节点都有一个值。
- max_iter:整数,可选(默认=1000)
幂法中的最大迭代次数。
- tol:浮点数,可选(默认=1.0e-6)
误差容限用于检查幂法迭代中的收敛性。
- nstart:字典,可选
每个节点的 Katz 迭代的起始值。
- normalized:布尔,可选(默认=真)
如果 True 标准化结果值。
- weight:无或字符串,可选(默认=无)
如果没有,所有的边权重都被认为是相等的。否则保存用作权重的边属性的名称。在这个度量中,权重被解释为连接强度。
- nodes:字典
以 Katz 中心性为值的节点字典。
- NetworkXError
如果参数
beta
不是标量但缺少至少一个节点的值- PowerIterationFailedConvergence
如果算法在幂迭代法的指定迭代次数内未能收敛到指定的容差。
参数:
返回:
抛出:
注意:
Katz 中心性由 [2] 引入。
该算法使用幂法找到
G
的邻接矩阵的最大特征值对应的特征向量。参数alpha
应严格小于邻接矩阵的最大特征值的倒数,以使算法收敛。可以使用max(nx.adjacency_spectrum(G))
得到邻接矩阵的最大特征值 。迭代将在max_iter
迭代或达到number_of_nodes(G) * tol
的容错后停止。当 和 时,Katz 中心性与特征向量中心性相同。
对于有向图,这会找到与图中的 in-edges 对应的 “left” 特征向量。对于 out-edges Katz 中心性,首先使用
G.reverse()
反转图形。参考:
- 1
Mark E. J. Newman: Networks: An Introduction. Oxford University Press, USA, 2010, p. 720.
- 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(G, 1 / phi - 0.01) >>> for n, c in sorted(centrality.items()): ... print(f"{n} {c:.2f}") 0 0.37 1 0.60 2 0.60 3 0.37
相关用法
- Python NetworkX katz_centrality_numpy用法及代码示例
- Python NetworkX kamada_kawai_layout用法及代码示例
- Python NetworkX karate_club_graph用法及代码示例
- Python NetworkX k_edge_components用法及代码示例
- Python NetworkX k_clique_communities用法及代码示例
- Python NetworkX kosaraju_strongly_connected_components用法及代码示例
- Python NetworkX k_edge_augmentation用法及代码示例
- Python NetworkX k_components用法及代码示例
- Python NetworkX k_edge_subgraphs用法及代码示例
- Python NetworkX negative_edge_cycle用法及代码示例
- Python NetworkX voronoi_cells用法及代码示例
- Python NetworkX numerical_edge_match用法及代码示例
- Python NetworkX inverse_line_graph用法及代码示例
- Python NetworkX LFR_benchmark_graph用法及代码示例
- Python NetworkX write_graph6用法及代码示例
- Python NetworkX DiGraph.__contains__用法及代码示例
- Python NetworkX average_degree_connectivity用法及代码示例
- Python NetworkX eulerian_circuit用法及代码示例
- Python NetworkX single_source_dijkstra_path_length用法及代码示例
- Python NetworkX from_dict_of_dicts用法及代码示例
- Python NetworkX weisfeiler_lehman_subgraph_hashes用法及代码示例
- Python NetworkX transitive_closure_dag用法及代码示例
- Python NetworkX intersection用法及代码示例
- Python NetworkX MultiGraph.size用法及代码示例
- Python NetworkX Graph.size用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.centrality.katz_centrality。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。