Giter Club home page Giter Club logo

graph-coarsening's Introduction

graph-coarsening package

Multilevel graph coarsening algorithm with spectral and cut guarantees.

The code accompanies paper Graph reduction with spectral and cut guarantees by Andreas Loukas published at JMLR/2019.

In addition to the introduced variation methods, the code provides implementations of heavy-edge matching, algebraic distance, affinity, and Kron reduction (adapted from pygsp).

Paper abstract

Can one reduce the size of a graph without significantly altering its basic properties? The graph reduction problem is hereby approached from the perspective of restricted spectral approximation, a modification of the spectral similarity measure used for graph sparsification. This choice is motivated by the observation that restricted approximation carries strong spectral and cut guarantees, and that it implies approximation results for unsupervised learning problems relying on spectral embeddings. The article then focuses on coarsening - the most common type of graph reduction. Sufficient conditions are derived for a small graph to approximate a larger one in the sense of restricted approximation. These findings give rise to algorithms that, compared to both standard and advanced graph reduction methods, find coarse graphs of improved quality, often by a large margin, without sacrificing speed.

Contents

There are five python notebooks included under examples:

  • coarsening_demo.ipynb demonstrates how the code can be used with a toy example (see also blogpost).
  • coarsening_methods.ipynb shows the effect of different coarsening methods on a toy example.
  • experiment_approximation.ipynb reproduces the results of Section 5.1.
  • experiment_spectrum.ipynb reproduces the results of Section 5.2.
  • experiment_scalability.ipynb reproduces the results of Section 5.3.

Since I have not fixed the random seed, some small variance should be expected in the experiment output.

Installation instructions:

git clone [email protected]:loukasa/graph-coarsening.git
cd graph-coarsening
pip install .

Dependencies: pygsp, matplotlib, numpy, scipy, sortedcontainers Optional dependency: networkx

Citation

If you use this code, please cite:

@article{JMLR:v20:18-680,
  author  = {Andreas Loukas},
  title   = {Graph Reduction with Spectral and Cut Guarantees},
  journal = {Journal of Machine Learning Research},
  year    = {2019},
  volume  = {20},
  number  = {116},
  pages   = {1-42},
  url     = {http://jmlr.org/papers/v20/18-680.html}
}

Acknowledgements

This work was kindly supported by the Swiss National Science Foundation (grant number PZ00P2 179981). I would like to thank Scott Gigante for helping package the code.

15 May 2020

Andreas Loukas

DOI

Released under the Apache license 2.0

graph-coarsening's People

Contributors

loukasa avatar scottgigante avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.