更改

跳到导航 跳到搜索
添加479字节 、 2020年4月10日 (五) 23:19
第463行: 第463行:  
|arxiv=physics/0506133|bibcode=2005Natur.435..814P}}
 
|arxiv=physics/0506133|bibcode=2005Natur.435..814P}}
 
</ref>将社团定义为 k-clique 的渗透集群。 为了做到这一点,需找到一个网络中的所有 <math>k</math>派系,即所有完整子图的 <math>k</math> 个节点。然后定义两个共享 <math>k-1</math>个节点的 '''k-cliques  <math>k</math> -团 '''为相邻的 k-cliques ,即用于定义团图中的边。然后将社团定义为k-clique的最大并集,其中任意k-clique 可以通过一系列 k-clique 邻接,从任意 k-clique 到达其他 k-clique 。也就是说,社团只是团图中的连通组件。 由于一个节点可以同时属于几个不同的 k-clique 渗透簇,故社团之间可以相互重叠。
 
</ref>将社团定义为 k-clique 的渗透集群。 为了做到这一点,需找到一个网络中的所有 <math>k</math>派系,即所有完整子图的 <math>k</math> 个节点。然后定义两个共享 <math>k-1</math>个节点的 '''k-cliques  <math>k</math> -团 '''为相邻的 k-cliques ,即用于定义团图中的边。然后将社团定义为k-clique的最大并集,其中任意k-clique 可以通过一系列 k-clique 邻接,从任意 k-clique 到达其他 k-clique 。也就是说,社团只是团图中的连通组件。 由于一个节点可以同时属于几个不同的 k-clique 渗透簇,故社团之间可以相互重叠。
 +
 +
====代码实现====
 +
利用网络科学工具包[https://networkx.github.io/ NetworkX], 可以调用基于渗流方法的K-clique社团检测算法。示例如下:
 +
<source>
 +
# 导入算法包
 +
from networkx.algorithms.community import k_clique_communities
 +
# 构造图
 +
G = nx.complete_graph(5)
 +
K5 = nx.convert_node_labels_to_integers(G,first_label=2)
 +
G.add_edges_from(K5.edges())
 +
# 对图G进行社团检测,制定最小cliques=4
 +
c = list(k_clique_communities(G, 4))
 +
</source>
    
==社团检测算法的评价标准==
 
==社团检测算法的评价标准==
7,129

个编辑

导航菜单