Reputation: 11
I am doing a community-level network analysis and I am trying to detect communities in my network. I used three different algorithms
(1) Community detection based on edge betweenness (Newman-Girvan) - Detected: 50 communities, modularity 0.1
ceb <- cluster_edge_betweenness(net)
dendPlot(ceb, mode = "hclust")
plot(ceb, net, vertex.label = NA, edge.label = NA)
(2)Community detection based on based on propagating labels - detects 4 communities, modularity 0.4
clp <- cluster_label_prop(net)
plot(clp, net, vertex.label = NA, edge.label = NA)
(3)Community detection based on greedy optimization of modularity - detects 5 communities, modularity
cfg <- cluster_fast_greedy(as.undirected(net))
plot(cfg, net, vertex.label = NA, edge.label = NA)
In my data I have employees (nodes) who work at 5 different departments. It would make sense to have 5 communities, and the higher modularity (I think) indicates that it is a better measure than the first result (50 communities). But I am really not sure how to interpret such different results. Can anyone shed some light? Thank you very much
Upvotes: 1
Views: 369
Reputation: 223
I'm not entirely sure what you're asking here, but let me take a general stab at this. The modularity score captures how well a particular clustering algorithm does it's job of clustering vertices. Clustering algorithms that produce clustering structures with higher modularity scores are "better" than those that produce lower modularity scores. If you have three different clustering algorithms of the same network, the algorithm with the greatest modularity score would be the better choice, provided it makes conceptual sense. From my understanding, the clustering algorithms in igraph are produced such that they generate a clustering structure with the best possible modularity score possible for that algorithm for the network in question.
Upvotes: 1