vtraag / louvain-igraph

Implementation of the Louvain algorithm for community detection with various methods for use with igraph in python.
GNU General Public License v3.0
246 stars 46 forks source link

Advantages over igraph Louvain algorithm #18

Closed falexwolf closed 7 years ago

falexwolf commented 7 years ago

Hi!

is there an advantage of this implementation over igraph.community_multilevel()? There seem to be differences, e.g., as the latter does not have a resolution parameter.

Thank you! Alex

vtraag commented 7 years ago

Hi Alex,

There are a couple of differences. First of all, the igraph.community_multilevel() functions only supports optimising modularity on undirected (weighted) graphs. This implementation also supports directed (weighted) graphs for modularity, but in addition can also optimise other quality functions:

As you already saw, the implementation also supports a resolution parameter for modularity (indicated in this package by RBConfiguration). Additionally, it also supports multiple layers, which can be used to detect communities in multiplex networks, cf. Mucha et al. (2010) and handling negative links correctly. I've written a small blog post about some of the possibilities: http://www.traag.net/2015/03/02/easy-flexible-and-fast-framework-for-community-detection/. The idea of the framework is that it is easily extendable to other quality functions.

Hope this answers your question.

In the near future I plan to release a new implementation, which optimises quality functions better and is faster. It is also better documented, with more clearer examples. Stay tuned! ;)

Best,

Vincent

falexwolf commented 7 years ago

Thank you for the detailed answer! :smile: Alex

vtraag commented 7 years ago

You're welcome!