Skip to content

A package to understand and analyze complex networks and more in general complex data. It is a collection of clustering techniques inspired by social science and communication theories.

License

Notifications You must be signed in to change notification settings

davidemiceli/watch-complexity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Watch Complexity · GitHub license PRs Welcome

WatchComplexity is a package to understand and analyze complex networks and more in general complex data. It is a collection of clustering techniques inspired by social science and communication theories.

Documentation

All useful informations can be found in the wiki documentation:

Algorithms

The tool provides the following algorithms.

Getting started

Install

npm install watch-complexity

How to use it

const watchcomplexity = require('watch-complexity');

Example of use:

// The list of edges
const edges = [
  {from: "Napoleon", to: "Myriel", weight: 1},
  {from: "Mme.Magloire", to: "Myriel", weight: 10},
  {...}
];
// Measure the influence score and detect the influence roles
const nodes = watchcomplexity.influence.typology(edges);

That will return as result:

{
 ranking: 
   [
      {node: "Marius", role: "Hub", score: 100},
      {node: "Courfeyrac", role: "Amplifier", score: 93.68029739776952},
      {node: "Enjolras", role: "Reducer", score: 92.93680297397769},
      {node: "Fantine", role: "Amplifier", score: 89.96282527881041},
      ...,
      {node: "Mme.Hucheloup", role: "Emitter", score: 39.405204460966544},
      {node: "Anzelma", role: "Low emitter", score: 34.94423791821562},
      {node: "Pontmercy", role: "Reducer", score: 33.08550185873605},
      ...
      {node: "OldMan", role: "Emitter branch", score: 1.4869888475836461},
      {node: "Napoleon", role: "Emitter branch", score: 0}
   ],
  nodes: 77,
  edges: 254,
  distribution:  {
    Blackhole: 0,
    Vulcano: 0,
    Channeler: 0,
    Chain: 0,
    Bridge: 1,
    Connector: 3,
    'Emitter branch': 15,
    'Receiver branch': 2,
    Receiver: 2,
    Emitter: 4,
    'Low emitter': 9,
    Idle: 0,
    Transceiver: 5,
    Tophub: 0,
    Hub: 1,
    Dam: 6,
    Reducer: 12,
    Megamplifier: 7,
    Amplifier: 10
  }
}

Tests

Unit tests are inside the folder /test, included test coverage through nyc.

To run all unit tests, type:

npm test

Motivation

Our main goal is to do experimental research with practical applications.

License

WatchComplexity is an open source project available under the MIT license.

Releases

No releases published

Packages

No packages published