不同的社区检测算法-结果截然不同

问题描述

我正在进行社区级别的网络分析,并且试图检测网络中的社区。我使用了三种不同的算法

(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中的聚类算法是这样产生的,即它们生成的聚类结构具有针对该网络的算法的最佳模块化得分。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...