overlap_weighted_projected_graph#
- overlap_weighted_projected_graph(B, nodes, jaccard=True)[source]#
重叠加权投影:将B投影到其节点集之一上。
重叠加权投影是指将二分网络B投影到指定节点上,权重表示原始二分网络中两个节点的邻域之间的Jaccard指数[R9c7794788cc1-1]_:
\[w_{v, u} = \frac{|N(u) \cap N(v)|}{|N(u) \cup N(v)|}\]或者如果参数’jaccard’为False,则表示原始二分图中两个节点的最小度数的共同邻居的比例[R9c7794788cc1-1]_:
\[w_{v, u} = \frac{|N(u) \cap N(v)|}{min(|N(u)|, |N(v)|)}\]节点保留其属性,并且在结果图中连接,前提是它们在原始二分图中有一个共同的边。
- Parameters:
- BNetworkX图
输入图应该是二分图。
- nodes列表或可迭代对象
要投影到的节点(“底部”节点)。
- jaccard: 布尔值(默认=True)
- Returns:
- GraphNetworkX图
投影到给定节点的图。
See also
is_bipartite
is_bipartite_node_set
sets
weighted_projected_graph
collaboration_weighted_projected_graph
generic_weighted_projected_graph
projected_graph
Notes
没有尝试验证输入图B是否为二分图。 图和节点属性被(浅层)复制到投影图中。
有关NetworkX中如何处理二分图的更多详细信息,请参阅:mod:
bipartite文档
。References
[1]Borgatti, S.P. 和 Halgin, D. 在版。分析隶属关系网络。在Carrington, P. 和 Scott, J. (eds) 社会网络分析的Sage手册中。Sage出版社。
Examples
>>> from networkx.algorithms import bipartite >>> B = nx.path_graph(5) >>> nodes = [0, 2, 4] >>> G = bipartite.overlap_weighted_projected_graph(B, nodes) >>> list(G) [0, 2, 4] >>> list(G.edges(data=True)) [(0, 2, {'weight': 0.5}), (2, 4, {'weight': 0.5})] >>> G = bipartite.overlap_weighted_projected_graph(B, nodes, jaccard=False) >>> list(G.edges(data=True)) [(0, 2, {'weight': 1.0}), (2, 4, {'weight': 1.0})]