Looking for a lib that detects overlapping communities in a fairly large network (up to 10,000 nodes) in seconds, not minutes? [note: by "network" I mean a graph]
Responding to a comment asking for details, here is a simple example:
D-E-F
|
G
|
A-B-C
There are many algorithms that are able to detect (D,E,F,G) and (A,B,C) as 2 distinct (non overlapping) communities in this network - or of course, (D,E,F) and (A,B,C,G).
I am looking for an algorithm, implemented in Java, that would be able to detect (D,E,F,G) and (A,B,C,G) as the two overlapping (because they overlap on G) communities in this network.
DNTM uses pre-partitioned disjoint communities and then analyzes the neighbourhood distribution of boundary nodes in disjoint communities to detect overlapping communities.
Community detection, also called graph partition, helps us to reveal the hidden relations among the nodes in the network. Many algorithms have been developed to detect communities (Clauset et al., 2004; Girvan and Newman, 2002; Lancichinetti and Fortunato, 2009).
Detection of overlapping communities in a network is the task of grouping the nodes of the network into a family of subsets called clusters so that each cluster contains nodes that are similar with respect to the overall network structure.
The process of discovering the cohesive groups or clusters in the network is known as community detection. It forms one of the key tasks of social net- work analysis.
Try, SNAP Tool from Stanford University. They have this use case in the examples folder already implemented.
http://snap.stanford.edu/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With