Skip to content

anvaka/ngraph.louvain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ngraph.louvain

Given a graph instance detects clusters using the Louvain Method. Demo

usage

// Let's say you have an ngraph instance:
var graph = createAGraph();

// To detect clusters:
var detectClusters = require('ngraph.louvain');
var clusters = detectClusters(graph);

// now you can iterate over each node and get it's community (aka class):
graph.forEachNode(function(node) {
  console.log(node.id, clusters.getClass(node.id));
});

Note: Louvain method is hierarchical. I.e. you should be able to get coarser graphs based on detected communities. By default ngraph.louvain does not implement hierarchies, yet you can easily achieve it by following:

var coarsen = require('ngraph.coarsen');

var detectClusters = require('ngraph.louvain');
var clusters = detectClusters(graph);

while(clusters.canCoarse()) {
  graph = coarsen(graph, clusters);
  clusters = detectClusters(graph);
  // this will give you next level in the hierarchy
}

install

npm install ngraph.louvain

see also

license

MIT

About

Given a graph instance detects communities using the Louvain Method

Resources

License

Stars

Watchers

Forks

Packages

No packages published