cn_soundarajan_hopcroft#
- cn_soundarajan_hopcroft(G, ebunch=None, community='community')[source]#
计算ebunch中所有节点对的共同邻居数量,使用社区信息。
对于两个节点:math:
u`和:math:`v
,该函数计算共同邻居的数量,并为每个属于:math:`u`和:math:`v`同一社区的共同邻居加一分。数学上,\[|\Gamma(u) \cap \Gamma(v)| + \sum_{w \in \Gamma(u) \cap \Gamma(v)} f(w)\]其中:math:
f(w)`等于1如果:math:`w`属于:math:`u`和:math:`v`的同一社区,否则为0,:math:
Gamma(u)`表示:math:`u`的邻居集合。- Parameters:
- G图
一个NetworkX无向图。
- ebunch节点对的可迭代对象,可选(默认 = None)
将对可迭代对象中给定的每对节点计算得分。节点对必须以2元组(u, v)的形式给出,其中u和v是图中的节点。如果ebunch为None,则将使用图中所有不存在的边。 默认值:None。
- community字符串,可选(默认 = ‘community’)
包含社区信息的节点属性名称。G[u][community]标识u所属的社区。每个节点最多属于一个社区。默认值:’community’。
- Returns:
- piter迭代器
一个迭代器,返回形式为(u, v, p)的3元组,其中(u, v)是一对节点,p是它们的得分。
- Raises:
- NetworkXNotImplemented
如果
G
是DiGraph
、Multigraph
或MultiDiGraph
。- NetworkXAlgorithmError
如果
ebunch
或G
(如果ebunch
为None
)中的节点没有社区信息。- NodeNotFound
如果
ebunch
中有一个节点不在G
中。
References
[1]Sucheta Soundarajan and John Hopcroft. 使用社区信息提高链接预测方法的精确度。 在第21届国际万维网会议(WWW ‘12 Companion)上发表。ACM, 纽约, NY, USA, 607-608. http://doi.acm.org/10.1145/2187980.2188150
Examples
>>> G = nx.path_graph(3) >>> G.nodes[0]["community"] = 0 >>> G.nodes[1]["community"] = 0 >>> G.nodes[2]["community"] = 0 >>> preds = nx.cn_soundarajan_hopcroft(G, [(0, 2)]) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p}") (0, 2) -> 2