Python:求图的平均四面体聚类系数的有效方法?

2024-06-06 12:45:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道标准的聚类系数(它是基于通过一个节点的实际三角形的数量,通过可能的三角形的数量)。我在寻找一个合适的方法来处理四面体(4节点完全子图/4团子图)。本质上,这又意味着,通过某个给定点,除以通过该点的可能四面体的数目,求出所有四面体的平均值。在

我查看了this和{a2},想看看是否可以为我自己的案例进行复制,但是发现很难理解到底发生了什么(因为我对python/networkx比较陌生)。在

对于数千个节点,什么是有效的方法?在


Tags: 方法a2标准数量节点聚类this定点
1条回答
网友
1楼 · 发布于 2024-06-06 12:45:53

对于单个节点,可以执行以下操作:

nb = G.subgraph(G.neighbors(N))
cc = 0 if len(nb) < 3 else 2 * sum(networkx.triangles(nb).values()) / (len(nb) * (len(nb)-1) * (len(nb)-2))

对于平均值,您可以使用集团枚举。我找不到如何只从networkx得到四面体,所以我们用itertools.groupby来过滤它们。然后我们只需计算每个节点在这个列表中出现的频率,规范化,取平均值,就这样了。在

^{pr2}$

样本输出:

1.0
0.000998169690313529

相关问题 更多 >