I am familiar with various clustering algorithms (k-means, etc.), but for my specific use case (social networks) I need an algorithm that detects overlapping groups. This algorithm neatly separates my Facebook friends from my high school friends, my college friends, my family, and my friends.
The algorithm used above (JUNG VoltageClusterer) divides the nodes into separate clusters. But I need an algorithm that can assign nodes to multiple clusters (for example, my friend can be both my high school friend and college friend).
How can I do it? It would be nice if I could use this algorithm for weighted graphs, and not just unweighted ones.
source share