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}}\]其中:math:
Gamma(u)`表示:math:`u`的邻居集合,:math:
Gamma(v)`表示:math:v`的邻居集合,:math:
alpha`是一个在[0,1]之间的参数,:math:`N`表示图中的节点总数,:math:`{d}_{uv}`表示:math:`u`和:math:`v`之间的最短距离。该算法基于节点的两个重要属性,即共同邻居的数量和它们的中心性。共同邻居指的是两个节点之间的共同节点。中心性指的是一个节点在网络中享有的声望。
See also
common_neighbors()
- Parameters:
- G图
无向网络X图。
- ebunch节点对的可迭代对象,可选(默认 = None)
优先连接分数将针对可迭代对象中给出的每对节点进行计算。节点对必须以2元组(u, v)的形式给出,其中u和v是图中的节点。如果ebunch为None,则图中所有不存在的边都将被使用。默认值:None。
- alpha共同邻居和中心性算法参与度的参数定义。alpha的值通常应在0和1之间。默认值设置为0.8,因为作者发现在所有数据集中0.8的性能更好。
默认值:0.8
- Returns:
- piter迭代器
一个形式为(u, v, p)的3元组迭代器,其中(u, v)是一对节点,p是它们的基于共同邻居和中心性的参数化算法(CCPA)分数。
- Raises:
- NetworkXNotImplemented
如果
G
是DiGraph
、Multigraph
或MultiDiGraph
。- NetworkXAlgorithmError
如果
ebunch
或G
(如果ebunch
为None)中存在自环。- NodeNotFound
如果
ebunch
中有一个节点不在G
中。
References
[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
Examples
>>> 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