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’为假,则以原始二部图中的两个节点度的最小值计算公共邻居的分数 [1]:

\[W V,U=\frac N(U)\cap N(V)min(N(U),N(V))\]

如果原始二部图中的公共节点有边,则节点保留其属性并连接到结果图中。

参数
B网络X图表

输入图应该是二部图。

nodes列表或可迭代

要投影到的节点(“底部”节点)。

jaccard: Bool (default=True)
返回
Graph网络X图表

是在给定节点上的投影的图。

笔记

未尝试验证输入图B是否为二部分。图形和节点属性(浅)复制到投影图形。

bipartite documentation 有关如何在NetworkX中处理二部图的详细信息。

工具书类

1(1,2)

Borgatti,S.P.和Halgin,D.出版。分析隶属关系网络。在Carrington,P.和Scott,J.(eds)的社会网络分析SAGE手册。SAGE出版物。

实例

>>> 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})]