ra_index_soundarajan_hopcroft#
- ra_index_soundarajan_hopcroft(G, ebunch=None, community='community')[source]#
计算ebunch中所有节点对的资源分配指数,使用社区信息。
对于两个节点:math:
u`和:math:`v
,此函数计算资源分配指数,仅考虑属于:math:`u`和:math:`v`相同社区的共同邻居。数学上,\[\sum_{w \in \Gamma(u) \cap \Gamma(v)} \frac{f(w)}{|\Gamma(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和John Hopcroft。 使用社区信息提高链接预测方法的精确度。 在第21届国际万维网会议(WWW ‘12 Companion)上发表。ACM, 纽约, NY, USA, 607-608。 http://doi.acm.org/10.1145/2187980.2188150
Examples
>>> G = nx.Graph() >>> G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) >>> G.nodes[0]["community"] = 0 >>> G.nodes[1]["community"] = 0 >>> G.nodes[2]["community"] = 1 >>> G.nodes[3]["community"] = 0 >>> preds = nx.ra_index_soundarajan_hopcroft(G, [(0, 3)]) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p:.8f}") (0, 3) -> 0.50000000