Efficient graph clustering algorithm

algorithmsclustergraph

I'm looking for an efficient algorithm to find clusters on a large graph (It has approximately 5000 vertices and 10000 edges).

So far I am using the Girvan–Newman algorithm implemented in the JUNG java library but it is quite slow when I try to remove a lot of edges.

Can you suggest me a better alternative for large graphs?

Best Answer

I personally suggest Markov clustering. I have used it several times in the past with good results.

Affinity propagation is another viable option, but it seems less consistent than Markov clustering.

There are various other options, but these two are good out of the box and well suited to the specific problem of clustering graphs (which you can view as sparse matrices). The distance measure you are using is also a consideration. Your life will be easier if you are using a proper metric.

I found this paper while looking for performance benchmarks, it is a good survey of the subject.

Related Topic