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.

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. – Kasra Manshaei – 2017-04-07T08:42:05.087

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. – Harpal – 2017-04-07T10:26:36.423

whenshould networks be 'grouped'? Currently, your question allows random grouping. – Has QUIT--Anony-Mousse – 2017-04-07T12:44:28.703So your problem is Community Detection. You can check the links I provided and see implementations e.g. in NetworkX Python library. – Kasra Manshaei – 2017-04-10T18:03:41.060