square_clustering#

square_clustering(G, nodes=None)[源代码]#

计算节点的方形聚类系数(squares clustering coefficient)。

对于每个节点,返回该节点处可能存在的方形(squares)的比例[1]

\[C_4(v) = \frac{ \sum_{u=1}^{k_v} \sum_{w=u+1}^{k_v} q_v(u,w) }{ \sum_{u=1}^{k_v} \sum_{w=u+1}^{k_v} [a_v(u,w) + q_v(u,w)]},\]

其中 \(q_v(u,w)\)\(u\)\(w\) 除了 \(v\) 以外的共同邻居数量(即方形),而 \(a_v(u,w) = (k_u - (1+q_v(u,w)+\theta_{uv})) + (k_w - (1+q_v(u,w)+\theta_{uw}))\),其中如果 \(u\)\(w\) 连接,则 \(\theta_{uw} = 1\),否则为 0。[2]

参数:
G
nodes节点容器,可选 (默认=G中的所有节点)

计算此容器中节点的聚类。

返回:
c4字典

以节点为键,方形聚类系数值为值的字典。

说明

虽然 \(C_3(v)\) (三角形聚类) 给出了节点 v 的两个邻居相互连接的概率,但 \(C_4(v)\) 是节点 v 的两个邻居共享一个不同于 v 的共同邻居的概率。此算法可应用于二分网络和单部网络。

参考文献

[1]

Pedro G. Lind, Marta C. González, and Hans J. Herrmann. 2005 Cycles and clustering in bipartite networks. Physical Review E (72) 056127.

[2]

Zhang, Peng 等。Clustering Coefficient and Community Structure of Bipartite Networks. Physica A: Statistical Mechanics and its Applications 387.27 (2008): 6869–6875. https://arxiv.org/abs/0710.0117v1

示例

>>> G = nx.complete_graph(5)
>>> print(nx.square_clustering(G, 0))
1.0
>>> print(nx.square_clustering(G))
{0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0}
----

其他后端也实现了此函数

graphblas启用 OpenMP 的稀疏线性代数后端。
附加参数
chunksizeint 或 str,可选

将计算分割成块;可以指定大小为字符串或行数。默认为 "256 MiB"

parallel一个使用 joblib 并行运行图算法的 networkx 后端。请在此处查找 nx-parallel 的配置指南:here

节点被分块成 node_chunks,然后所有 node_chunks 的方形聚类系数在 n_jobs 个 CPU 核上并行计算。

附加参数
get_chunksstr, 函数 (默认 = "chunks")

一个函数,它将所有节点列表(或 nbunch)作为输入,并返回一个可迭代的 node_chunks。默认的分块是通过将 nodes 切片为 n_jobs 个块来完成的。

[源代码]