How to do community detection in a edge weighted network/graph?

My General Problem is: How to do community detection in a weighted undirected social network/graph? Dataset that I want to Cluster looks like this,

DrugA, DrugB,Weight 
x,y,6
y,z,9
y,p,5
x,p,3

In my dataset I have multiple nodes of drugs and the weight between them represents the similarity between the drugs.I want to cluster the connected nodes in smaller clusters with nodes with higher weights connected together ie some sort of minimum cut. Which clustering algorithm can I use to cluster this sort of dataset; preferably from Scikit-learn or NetworkX ?

I have already tried Chinese Whispers but due to the dense connectivity of graph CW end up giving two large Clusters. Any recommendations/suggestions would be greatly appreciated.


Hierarchical clustering can do this.

But you need an implementation that works on sparse graphs, and similarities rather than distances.


The answer I was looking was "Community detection algorithm". Louvain Modularity algorithm is a weighted/unweighted flat clustering algorithm. An implementation of the algorithm is available in GEPHI(Old version).

链接地址: http://www.djcxy.com/p/68358.html

上一篇: C ++ 11

下一篇: 如何在边缘加权网络/图中进行社区检测?