adamic_adar_index#
- adamic_adar_index(G, ebunch=None)[source]#
计算 ebunch 中所有节点对的 Adamic-Adar 指数。
节点
u
和v
的 Adamic-Adar 指数定义为\[\sum_{w \in \Gamma(u) \cap \Gamma(v)} \frac{1}{\log |\Gamma(w)|}\]其中 \(\Gamma(u)\) 表示 \(u\) 的邻居集合。对于仅通过自环连接的节点,此指数会导致除以零。它旨在用于不存在自环的情况下。
- 参数:
- G图
NetworkX 无向图。
- ebunch节点对的可迭代对象,可选(默认 = None)
将对可迭代对象中给定的每对节点计算 Adamic-Adar 指数。节点对必须以 2 元组 (u, v) 的形式给出,其中 u 和 v 是图中的节点。如果 ebunch 为 None,则将使用图中所有不存在的边。默认值: None。
- 返回:
- piter迭代器
一个包含 3 元组 (u, v, p) 的迭代器,其中 (u, v) 是节点对,p 是它们的 Adamic-Adar 指数。
- 抛出:
- NetworkXNotImplemented
如果
G
是DiGraph
、Multigraph
或MultiDiGraph
。- NodeNotFound
如果
ebunch
中包含不在G
中的节点。
参考文献
[1]D. Liben-Nowell, J. Kleinberg. The Link Prediction Problem for Social Networks (2004)。 http://www.cs.cornell.edu/home/kleinber/link-pred.pdf
示例
>>> G = nx.complete_graph(5) >>> preds = nx.adamic_adar_index(G, [(0, 1), (2, 3)]) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p:.8f}") (0, 1) -> 2.16404256 (2, 3) -> 2.16404256