clustering#

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

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

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

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

其中 N(N(u))G 中排除 uu 的二阶邻居, 而 c_{uv} 是节点 uv 之间的成对聚类系数。

模式选择用于 c_{uv} 的函数,可以是:

dot

\[ \begin{align}\begin{aligned} c_{uv}=\frac{|N(u)\cap N(v)|}{|N(u) \cup N(v)|}\\`min` :\end{aligned}\end{align} \]
\[ \begin{align}\begin{aligned} c_{uv}=\frac{|N(u)\cap N(v)|}{min(|N(u)|,|N(v)|)}\\`max` :\end{aligned}\end{align} \]
\[c_{uv}=\frac{|N(u)\cap N(v)|}{max(|N(u)|,|N(v)|)}\]
Parameters:
G

一个二分图

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

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

mode字符串

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

Returns:
clustering字典

一个以节点为键,聚类系数值为值的字典。

References

[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.

Examples

>>> from networkx.algorithms import bipartite
>>> G = nx.path_graph(4)  # 路径图是二分图
>>> c = bipartite.clustering(G)
>>> c[0]
0.5
>>> c = bipartite.clustering(G, mode="min")
>>> c[0]
1.0