collaboration_weighted_projected_graph#
- collaboration_weighted_projected_graph(B, nodes)[源代码]#
B 在其一个节点集上的 Newman 加权投影。
协作加权投影是将二分图 B 投影到指定节点集上的投影,权重使用 Newman 的协作模型 [1] 赋值。
\[w_{u, v} = \sum_k \frac{\delta_{u}^{k} \delta_{v}^{k}}{d_k - 1}\]其中
u
和v
是来自二分图底部节点集的节点,且k
是顶部节点集的节点。值d_k
是节点k
在二分网络中的度,且delta_{u}^{k}
的值为 1,如果节点u
在原始二分图中与节点k
相连,否则为 0。节点保留其属性,并且如果它们在原始二分图中连接到一个共同节点,则在结果图中连接。
- 参数:
- BNetworkX 图
输入图应为二分图。
- nodes列表或可迭代对象
要投影到的节点(“下方”节点)。
- 返回:
- GraphNetworkX 图
投影到给定节点集上的图。
另请参阅
is_bipartite
is_bipartite_node_set
sets
weighted_projected_graph
overlap_weighted_projected_graph
generic_weighted_projected_graph
projected_graph
注意
未尝试验证输入图 B 是否为二分图。图和节点属性被(浅)复制到投影图。
有关如何在 NetworkX 中处理二分图的更多详细信息,请参阅
二分图 文档
。参考文献
[1]Scientific collaboration networks: II. Shortest paths, weighted networks, and centrality, M. E. J. Newman, Phys. Rev. E 64, 016132 (2001)。
示例
>>> from networkx.algorithms import bipartite >>> B = nx.path_graph(5) >>> B.add_edge(1, 5) >>> G = bipartite.collaboration_weighted_projected_graph(B, [0, 2, 4, 5]) >>> list(G) [0, 2, 4, 5] >>> for edge in sorted(G.edges(data=True)): ... print(edge) (0, 2, {'weight': 0.5}) (0, 5, {'weight': 0.5}) (2, 4, {'weight': 1.0}) (2, 5, {'weight': 0.5})