实验二 :聚类技术—复杂网络社团检测
实验内容
-
导入karate.gml中的空手道网络数据;
-
根据网络结构特征给出节点相似性度量指标;
-
采用层次聚类过程对网络数据进行聚类;
-
计算模块性指标Q值,当Q值最大时输出聚类结果;
-
采用Cytoscape工具,可视化聚类结果。
分析及设计
-
导入数据包:
- 用python的networks包中的read_ gml方法读取“图”的数据;
- 观察图的信息:34个顶点、78条边的无向图;
-
构建节点相似度矩阵:
-
无向图的节点相似度矩阵
Si,j=∣Ni∩Nj∣∣Ni∪Nj∣S_{i,j}={ {|N_i \cap N_j|}\over{|N_i \cup N_j|}}Si,j=∣Ni∪Nj∣∣Ni∩Nj∣
- NiN_iNi代表iii所连的全部点的集合;
- NjN_jNj代表jjj所连的全部点的集合;
-
-
用平均相似度定义聚类密度:
- density=1Ci≠j∑i,j∈C,i≠jSi,jdensity = {1 \over C_{i \neq j} \sum _{i,j \in C, i \neq j}{S_{i,j}}}density=<
复杂网络社团检测:聚类与模块度优化

该博客介绍了使用Python进行复杂网络社团检测的实验过程。首先,通过networkx库导入karate.gml数据,构建无向图的节点相似度矩阵。接着,定义平均相似度下的聚类密度函数,采用贪心算法进行聚类。在划分簇集后,计算模块度Q值,寻找最优聚类结果。最后,利用Cytoscape工具对聚类结果进行可视化,并通过matplotlib绘制Q值与密度阈值的关系图,找出Q值最大时的聚类情况。
最低0.47元/天 解锁文章
1007

被折叠的 条评论
为什么被折叠?



