common_neighbor_centrality#
- common_neighbor_centrality(G, ebunch=None, alpha=0.8)[source]#
返回每对节点的 CCPA 分数。
计算 ebunch 中所有节点对的基于共同邻居和中心性的参数化算法 (CCPA) 分数。
u
和v
的 CCPA 分数定义为\[\alpha \cdot (|\Gamma (u){\cap }^{}\Gamma (v)|)+(1-\alpha )\cdot \frac{N}{{d}_{uv}}\]其中 \(\Gamma(u)\) 表示 \(u\) 的邻居集合,\(\Gamma(v)\) 表示 \(v\) 的邻居集合,\(\alpha\) 是在 [0,1] 之间变化的参数,\(N\) 表示图中的总节点数,\({d}_{uv}\) 表示 \(u\) 和 \(v\) 之间的最短距离。
该算法基于节点的两个关键属性:共同邻居的数量和它们的中心性。共同邻居指两个节点共有的节点。中心性指节点在网络中享有的声望或影响力。
另请参阅
common_neighbors()
- 参数:
- G图
NetworkX 无向图。
- ebunch节点对的可迭代对象,可选(默认为 None)
将为可迭代对象中给定的每对节点计算共同邻居和中心性分数。这些对必须以 2 元组 (u, v) 的形式给出,其中 u 和 v 是图中的节点。如果 ebunch 为 None,则将使用图中所有不存在的边。默认值:None。
- alpha定义共同邻居
和中心性算法贡献比例的参数。alpha 的值通常应在 0 到 1 之间。默认值设置为 0.8,因为作者发现对于所有数据集,0.8 时性能更好。默认值:0.8
- 返回:
- piter迭代器
一个由 3 元组组成的迭代器,形式为 (u, v, p),其中 (u, v) 是一对节点,p 是它们的基于共同邻居和中心性的参数化算法 (CCPA) 分数。
- 引发:
- NetworkXNotImplemented
如果
G
是DiGraph
、Multigraph
或MultiDiGraph
。- NetworkXAlgorithmError
如果在
ebunch
或G
中存在自环(如果ebunch
为None
)。- NodeNotFound
如果
ebunch
中有不在G
中的节点。
参考文献
[1]Ahmad, I., Akhtar, M.U., Noor, S. et al. Missing Link Prediction using Common Neighbor and Centrality based Parameterized Algorithm. Sci Rep 10, 364 (2020). https://doi.org/10.1038/s41598-019-57304-y
示例
>>> G = nx.complete_graph(5) >>> preds = nx.common_neighbor_centrality(G, [(0, 1), (2, 3)]) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p}") (0, 1) -> 3.4000000000000004 (2, 3) -> 3.4000000000000004