聚类#

clustering(G, nodes=None, mode='dot')#

计算节点的二分聚类系数。

二分聚类系数是衡量连接局部密度的指标,定义为 [1]

\[c_u = \frac{\sum_{v \in N(N(u))} c_{uv} }{|N(N(u))|}\]

其中 N(N(u))uG 中的二阶邻居(不包括 u),c_{uv} 是节点 uv 之间的成对聚类系数。

mode 参数选择 c_{uv} 的计算函数,可以是:

点积:

\[c_{uv}=\frac{|N(u)\cap N(v)|}{|N(u) \cup N(v)|}\]

最小值:

\[c_{uv}=\frac{|N(u)\cap N(v)|}{min(|N(u)|,|N(v)|)}\]

最大值:

\[c_{uv}=\frac{|N(u)\cap N(v)|}{max(|N(u)|,|N(v)|)}\]
参数:
G

一个二分图

nodes列表或可迭代对象 (可选)

计算这些节点的二分聚类系数。默认是图 G 中的所有节点。

mode字符串

计算中使用的成对二分聚类方法。必须是 “dot”、“max” 或 “min”。

返回:
clustering字典

一个字典,键是节点,值是聚类系数值。

参考文献

[1]

Latapy, Matthieu, Clémence Magnien, and Nathalie Del Vecchio (2008). Basic notions for the analysis of large two-mode networks. Social Networks 30(1), 31–48.

示例

>>> from networkx.algorithms import bipartite
>>> G = nx.path_graph(4)  # path graphs are bipartite
>>> c = bipartite.clustering(G)
>>> c[0]
0.5
>>> c = bipartite.clustering(G, mode="min")
>>> c[0]
1.0