Skip to main content

A scikit-learn compatible library for graph kernels

Project description


Pypi Versions Coverage Status CircleCI Status

Documentation | Paper

GraKeL is a library that provides implementations of several well-established graph kernels. The library unifies these kernels into a common framework. Furthermore, it provides implementations of some frameworks that work on top of graph kernels. Specifically, GraKeL contains 16 kernels and 2 frameworks. The library is compatible with the scikit-learn pipeline allowing easy and fast integration inside machine learning algorithms.


In detail, the following kernels and frameworks are currently implemented:


To learn how to install and use GraKeL, and to find out more about the implemented kernels and frameworks, please read our documentation. To learn about the functionality of the library and about example applications, check out our examples in the examples/ directory and our tutorials in the tutorials/ directory.

In case you find a bug, please open an issue. To propose a new kernel, you can open a feature request.

Installation

The GraKeL library requires the following packages to be installed:

  • Python (>=2.7, >=3.5)
  • NumPy (>=1.8.2)
  • SciPy (>=0.13.3)
  • Cython (>=0.27.3)
  • cvxopt (>=1.2.0) [optional]
  • future (>=0.16.0) (for python 2.7)

To install the package, run:

$ pip install grakel

Running tests

To test the package, execute:

$ pytest

Running examples

$ cd examples
$ python shortest_path.py

Cite

If you use GraKeL in a scientific publication, please cite our paper (http://jmlr.org/papers/volume21/18-370/18-370.pdf):

@article{JMLR:v21:18-370,
  author  = {Giannis Siglidis and Giannis Nikolentzos and Stratis Limnios and Christos Giatsidis and Konstantinos Skianis and Michalis Vazirgiannis},
  title   = {GraKeL: A Graph Kernel Library in Python},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {54},
  pages   = {1-5}
}

License

GraKeL is distributed under the BSD 3-clause license. The library makes use of the C++ source code of BLISS (a tool for computing automorphism groups and canonical labelings of graphs) which is LGPL licensed. Futhermore, the cvxopt package (a software package for convex optimization) which is an optional dependency of GraKeL is GPL licensed.

Acknowledgements

We would like to thank @eddiebergman for modernizing our CI and extending our python support.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

GraKeL-0.1.10.tar.gz (1.0 MB view hashes)

Uploaded Source

Built Distributions

GraKeL-0.1.10-cp311-cp311-win_amd64.whl (679.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

GraKeL-0.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

GraKeL-0.1.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

GraKeL-0.1.10-cp311-cp311-macosx_10_9_x86_64.whl (720.1 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

GraKeL-0.1.10-cp311-cp311-macosx_10_9_universal2.whl (1.0 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

GraKeL-0.1.10-cp310-cp310-win_amd64.whl (679.0 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

GraKeL-0.1.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

GraKeL-0.1.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

GraKeL-0.1.10-cp310-cp310-macosx_10_9_x86_64.whl (719.3 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

GraKeL-0.1.10-cp310-cp310-macosx_10_9_universal2.whl (1.0 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

GraKeL-0.1.10-cp39-cp39-win_amd64.whl (679.3 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

GraKeL-0.1.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

GraKeL-0.1.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

GraKeL-0.1.10-cp39-cp39-macosx_10_9_x86_64.whl (719.9 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

GraKeL-0.1.10-cp39-cp39-macosx_10_9_universal2.whl (1.0 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

GraKeL-0.1.10-cp38-cp38-win_amd64.whl (679.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

GraKeL-0.1.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

GraKeL-0.1.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

GraKeL-0.1.10-cp38-cp38-macosx_10_9_x86_64.whl (721.1 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

GraKeL-0.1.10-cp38-cp38-macosx_10_9_universal2.whl (1.0 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

GraKeL-0.1.10-cp37-cp37m-win_amd64.whl (676.2 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

GraKeL-0.1.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

GraKeL-0.1.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

GraKeL-0.1.10-cp37-cp37m-macosx_10_9_x86_64.whl (717.5 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page