如何解决不同的社区检测算法-结果截然不同
我正在进行社区级别的网络分析,并且试图检测网络中的社区。我使用了三种不同的算法
(1)基于边缘中间性的社区检测(Newman-Girvan)-已检测到:50个社区,模块性为0.1
ceb <- cluster_edge_betweenness(net)
dendPlot(ceb,mode = "hclust")
plot(ceb,net,vertex.label = NA,edge.label = NA)
(2)基于传播标签的社区检测-检测4个社区,模块化0.4
clp <- cluster_label_prop(net)
plot(clp,edge.label = NA)
(3)基于贪婪性模块化优化的社区检测-检测5个社区,模块化
cfg <- cluster_fast_greedy(as.undirected(net))
plot(cfg,edge.label = NA)
在我的数据中,我有在5个不同部门工作的员工(节点)。拥有5个社区是有意义的,并且更高的模块化(我认为)表明,它比第一个结果(50个社区)更好。但是我真的不确定如何解释这种不同的结果。谁能阐明一些想法?非常感谢
解决方法
我不太确定您在这里要问什么,但是让我对此大刀阔斧。模块化得分记录了特定聚类算法在聚类顶点方面的工作情况。产生具有较高模块化得分的聚类结构的聚类算法比产生较低模块化得分的聚类算法“更好”。如果您在同一网络中有三种不同的聚类算法,则模块化的得分最高的算法将是更好的选择,前提是它具有概念意义。根据我的理解,igraph中的聚类算法是这样产生的,即它们生成的聚类结构具有针对该网络的算法的最佳模块化得分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。