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
个块来完成的。
[源代码]