within_inter_cluster#
- within_inter_cluster(G, ebunch=None, delta=0.001, community='community')[source]#
计算ebunch中所有节点对的类内和类间共同邻居的比率。
对于两个节点
u
和v
,如果一个共同邻居w
与它们属于同一社区,则w
被视为u
和v
的类内共同邻居。否则,它被视为u
和v
的类间共同邻居。类内和类间共同邻居集合大小的比率定义为WIC度量。[1]- Parameters:
- G图
一个NetworkX无向图。
- ebunch可迭代节点对,可选(默认 = None)
将对可迭代对象中给定的每一对节点计算WIC度量。节点对必须以2元组 (u, v) 的形式给出,其中 u 和 v 是图中的节点。如果 ebunch 为 None,则将使用图中所有不存在的边。 默认值:None。
- delta浮点数,可选(默认 = 0.001)
用于防止在两个节点之间没有类间共同邻居时除以零的值。详见[Rb1c94ab70339-1]_。默认值:0.001。
- community字符串,可选(默认 = ‘community’)
包含社区信息的节点属性名称。G[u][community] 标识 u 所属的社区。每个节点最多属于一个社区。默认值:’community’。
- Returns:
- piter迭代器
一个包含3元组 (u, v, p) 的迭代器,其中 (u, v) 是一对节点,p 是它们的WIC度量。
- Raises:
- NetworkXNotImplemented
如果
G
是一个DiGraph
、Multigraph
或MultiDiGraph
。- NetworkXAlgorithmError
如果
delta
小于或等于零。如果
ebunch
或G
(如果ebunch
为None
)中的节点没有社区信息。
- NodeNotFound
如果
ebunch
中有一个节点不在G
中。
References
[1]Jorge Carlos Valverde-Rebaza 和 Alneu de Andrade Lopes。 基于社区信息的复杂网络中的链接预测。 在第21届巴西人工智能进展会议(SBIA’12)的论文集中 https://doi.org/10.1007/978-3-642-34459-6_10
Examples
>>> G = nx.Graph() >>> G.add_edges_from([(0, 1), (0, 2), (0, 3), (1, 4), (2, 4), (3, 4)]) >>> G.nodes[0]["community"] = 0 >>> G.nodes[1]["community"] = 1 >>> G.nodes[2]["community"] = 0 >>> G.nodes[3]["community"] = 0 >>> G.nodes[4]["community"] = 0 >>> preds = nx.within_inter_cluster(G, [(0, 4)]) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p:.8f}") (0, 4) -> 1.99800200 >>> preds = nx.within_inter_cluster(G, [(0, 4)], delta=0.5) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p:.8f}") (0, 4) -> 1.33333333