Community detection¶
module load conda3
source activate /home/yli11/.conda/envs/network2020/
Reference¶
Core difference between each method is their objective function. In other words, how they define community.
Modularity score is a common idea. Two most popular methods are:
Louvian method
https://github.com/taynaud/python-louvain
Markov clustering method
https://github.com/GuyAllard/markov_clustering
Graph embedding (e.g., deepwalk)
Karateclub python package implements 20+ advanced community detection algorithms:
https://github.com/benedekrozemberczki/karateclub
Graph neural network
https://github.com/stellargraph/stellargraph
Drawback is the GNN is a supervised method.
graphSAGE provides unsupervided learning, node embedding.
some review papers:
Networkx layout¶
https://stackoverflow.com/questions/21978487/improving-python-networkx-graph-layout
Ego-splitting method for community detection¶
Only one parameter in the Ego-splitting method, resolution, which is the time resolution parameter mentioned in the Louvian method, intuitively, it relates to the probablity (e.g., average times) that in a random walk process, the first step and the time t step are being in the same community.
https://www.eecs.yorku.ca/course_archive/2017-18/F/6412/reading/kdd17p145.pdf
https://arxiv.org/pdf/0812.1770.pdf