I'm looking for methods of Community Detection in networks. For example if I have a network of 100 people (each node is a person), how can I cluster nodes? What would be the best approach for grouping these People? I know this question is rather open, but I'm just looking for a nudge in the right direction.
-
$\begingroup$ I added my answer but I'm still not sure about what you mean by "multiple networks". If you give an explanation I can refine my answer. $\endgroup$– Kasra ManshaeiCommented Apr 7, 2017 at 8:42
-
$\begingroup$ By multiple networks i mean, each person has their own network and I wish to cluster these networks together. Thank you for your answer below. $\endgroup$– HarpalCommented Apr 7, 2017 at 10:26
-
$\begingroup$ when should networks be 'grouped'? Currently, your question allows random grouping. $\endgroup$– Has QUIT--Anony-MousseCommented Apr 7, 2017 at 12:44
-
$\begingroup$ So your problem is Community Detection. You can check the links I provided and see implementations e.g. in NetworkX Python library. $\endgroup$– Kasra ManshaeiCommented Apr 10, 2017 at 18:03
1 Answer
Your question is not clear in a way there are two different Graph Clustering problems. One is having a dataset of different graphs and you would like to cluster similar graphs (in this case each object is a graph), and the other when you have a graph (e.g. a social network) and you would like to group similar nodes inside that graph (here each object is a node).
The first problem needs Graph Embedding which is to transfer graphs into a n-dimensional manifold and from there on, you have a classical clustering problem. For this case have a look at what Horst Bunke has done.
A more simplified approach would be feature extraction from networks and apply classical clustering methods. These features are statistical and topological network measures such as Clustering Coefficient, Assortativity Index, Average Shortest Path Length, Density, Diameter, Average Centrality, etc. This approach is more about the characteristics of real-world networks e.g. biological networks or social networks as it takes into account those characteristics which determine the real-world phenomena.
The second problem is usually called Community Detection in literature. There are several method for doing that based on Modularity Score, Information Theory, Topological Structure or Spectral Graph Theory.