overlap_weighted_projected_graph#
- overlap_weighted_projected_graph(B, nodes, jaccard=True)[源码]#
B图在其节点集上的重叠加权投影。
重叠加权投影是将二分网络B投影到指定的节点集上,其边的权重表示原始二分网络中两个节点邻域之间的Jaccard指数[1]
\[w_{v, u} = \frac{|N(u) \cap N(v)|}{|N(u) \cup N(v)|}\]或者如果参数“jaccard”为False,权重表示原始二分图中两个节点共同邻居数除以它们度数的最小值[1]
\[w_{v, u} = \frac{|N(u) \cap N(v)|}{min(|N(u)|, |N(v)|)}\]节点保留其属性,并且如果在原始二分图中与某个共同节点有边连接,则在结果图中它们是连通的。
- 参数:
- BNetworkX 图
输入图应为二分图。
- nodes列表或可迭代对象
要投影到的节点(“底部”节点)。
- jaccard: 布尔值 (默认=True)
- 返回值:
- GraphNetworkX 图
投影到给定节点集上的图。
另请参阅
is_bipartite
is_bipartite_node_set
sets
weighted_projected_graph
collaboration_weighted_projected_graph
generic_weighted_projected_graph
projected_graph
注意
未尝试验证输入图 B 是否为二分图。图和节点的属性被(浅)复制到投影图中。
有关 NetworkX 如何处理二分图的更多详细信息,请参阅
二分图文档
。参考文献
示例
>>> 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})]