collaboration_weighted_projected_graph#
- collaboration_weighted_projected_graph(B, nodes)[source]#
Newman的加权投影,将B投影到其一个节点集上。
协作加权投影是根据Newman的协作模型[R11902f1d2490-1]_,将二分网络B投影到指定节点上,并赋予权重:
\[w_{u, v} = \sum_k \frac{\delta_{u}^{k} \delta_{v}^{k}}{d_k - 1}\]- 其中
u
和v
是来自底部二分节点集的节点,k
是顶部节点集的一个节点。 d_k
是节点k
在二分网络中的度,delta_{u}^{k}
在原二分图中,如果节点u
与节点k
相连则为1,否则为0。
节点保留其属性,并且在生成的图中,如果它们在原始二分图中与一个公共节点相连,则它们是相连的。
- Parameters:
- BNetworkX图
输入图应该是二分的。
- nodes列表或可迭代对象
要投影到的节点(“底部”节点)。
- Returns:
- GraphNetworkX图
投影到给定节点的图。
See also
is_bipartite
is_bipartite_node_set
sets
weighted_projected_graph
overlap_weighted_projected_graph
generic_weighted_projected_graph
projected_graph
Notes
没有尝试验证输入图B是否是二分的。 图和节点属性被(浅层)复制到投影图中。
有关NetworkX中如何处理二分图的更多详细信息,请参阅
bipartite文档
。References
[1]科学协作网络:II. 最短路径,加权网络和中心性, M. E. J. Newman, Phys. Rev. E 64, 016132 (2001).
Examples
>>> 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})
- 其中