A scikit-learn compatible library for graph kernels
Project description
# GraKeL: A library for graph kernels
[![Travis Status](https://travis-ci.org/ysig/GraKeL.svg?branch=develop)](https://travis-ci.org/ysig/GraKeL)
[![Coverage Status](https://coveralls.io/repos/github/ysig/GraKeL/badge.svg?branch=develop)](https://coveralls.io/github/ysig/GraKeL?branch=develop)
[![CircleCI Status](https://circleci.com/gh/ysig/GraKeL/tree/develop.svg?style=shield)](https://circleci.com/gh/ysig/GraKeL/tree/develop)
[![Appveyor status](https://ci.appveyor.com/api/projects/status/sss4lpfxwgejn6de/branch/develop?svg=true)](https://ci.appveyor.com/project/ysig/grakel)
**grakel** is a library compatible with the project of [scikit-learn](http://scikit-learn.org/)
Installing grakel
=================
The grakel library requires:
* Python [>=2.7, >= 3.5]
* NumPy [>= 1.8.2]
* SciPy [>= 0.13.3]
* Cython [>= 0.27.3]
* cvxopt [>= 1.2.0] [optional: lovasz]
* future [>=0.16.0] (for python 2.7)
For installing dependencies the procedure is the well known:
```shell
(sudo) pip install extension>=extension_version
```
depending on if `pip` has superuser privilages.
To install the *development-version* of the module execute:
```shell
$ (sudo) pip install grakel-dev
```
Usage
=====
To learn how to use the GraKeL api **as a user**, please read the [documentation][doc] on sections *Introduction* and *A longer introduction*
(in case your are full of curiosity).
Testing
=======
In order for the following to work you first need to build the package cython extension
locally by executing:
```shell
$ python setup.py build_ext -i
```
To test the package, execute:
```shell
$ nosetests
```
for executing unit_tests or use a testing-interface for testing the `kernel` module:
```shell
$ python grakel/tests/test_kernels.py --help
usage: test_kernels.py [-h] [--verbose] [--problematic] [--slow]
[--ignore_warnings] [--dataset DATASET] [--normalize]
[--develop | --all | --main]
A test file for all kernels
optional arguments:
-h, --help show this help message and exit
--verbose print kernels with their outputs on stdout
--problematic allow execution of problematic test cases in development
--slow allow execution of slow test cases in development
--ignore_warnings ignore warnings produced by kernel executions
--dataset DATASET chose the datset you want the tests to be executed
--normalize normalize the kernel output
--develop execute only tests connected with current development
--all execute all tests
--main execute the main tests [default]
```
for testing `graph_kernels`:
```shell
$ python grakel/tests/test_graph_kernel.py --help
usage: test_graph_kernels.py [-h] [--verbose] [--problematic] [--slow]
[--normalize] [--ignore_warnings]
[--dataset DATASET] [--develop | --all | --main]
A test file for all kernels
optional arguments:
-h, --help show this help message and exit
--verbose print kernels with their outputs on stdout
--problematic allow execution of problematic test cases in development
--slow allow execution of slow test cases in development
--normalize normalize the kernel output
--ignore_warnings ignore warnings produced by kernel executions
--dataset DATASET chose the datset you want the tests to be executed
--develop execute only tests connected with current development
--all execute all tests
--main execute the main tests [default]
```
and for testing the `Graph` class:
```shell
$ python grakel/tests/test_graph.py --help
usage: test_graph.py [-h] [--verbose] [--ignore_warnings]
A test file for all `Graph` type objects
optional arguments:
-h, --help show this help message and exit
--verbose verbose outputs on stdout
--ignore_warnings ignore warnings produced by kernel executions
```
You can also execute the kernel test locally through a *test-main-function* as
```shell
$ python -m grakel.tests
```
Contributing
============
For learning how to integrate your own kernel, please read section *Write your own kernel* inside
the package [documentation][doc].
For contributing to the GraKeL project, please read section *contributing* inside the package [documentation][doc].
[doc]: https://ysig.github.io/GraKeL/dev/
Citation
========
If you use GraKeL in a scientific publication, please cite our paper:
```
@article{siglidis2018grakel,
title={GraKeL: A Graph Kernel Library in Python},
author={Siglidis, Giannis and Nikolentzos, Giannis and Limnios, Stratis and Giatsidis, Christos and Skianis, Konstantinos and Vazirgiannis, Michalis},
journal={arXiv preprint arXiv:1806.02193},
year={2018}
}
```
[![Travis Status](https://travis-ci.org/ysig/GraKeL.svg?branch=develop)](https://travis-ci.org/ysig/GraKeL)
[![Coverage Status](https://coveralls.io/repos/github/ysig/GraKeL/badge.svg?branch=develop)](https://coveralls.io/github/ysig/GraKeL?branch=develop)
[![CircleCI Status](https://circleci.com/gh/ysig/GraKeL/tree/develop.svg?style=shield)](https://circleci.com/gh/ysig/GraKeL/tree/develop)
[![Appveyor status](https://ci.appveyor.com/api/projects/status/sss4lpfxwgejn6de/branch/develop?svg=true)](https://ci.appveyor.com/project/ysig/grakel)
**grakel** is a library compatible with the project of [scikit-learn](http://scikit-learn.org/)
Installing grakel
=================
The grakel library requires:
* Python [>=2.7, >= 3.5]
* NumPy [>= 1.8.2]
* SciPy [>= 0.13.3]
* Cython [>= 0.27.3]
* cvxopt [>= 1.2.0] [optional: lovasz]
* future [>=0.16.0] (for python 2.7)
For installing dependencies the procedure is the well known:
```shell
(sudo) pip install extension>=extension_version
```
depending on if `pip` has superuser privilages.
To install the *development-version* of the module execute:
```shell
$ (sudo) pip install grakel-dev
```
Usage
=====
To learn how to use the GraKeL api **as a user**, please read the [documentation][doc] on sections *Introduction* and *A longer introduction*
(in case your are full of curiosity).
Testing
=======
In order for the following to work you first need to build the package cython extension
locally by executing:
```shell
$ python setup.py build_ext -i
```
To test the package, execute:
```shell
$ nosetests
```
for executing unit_tests or use a testing-interface for testing the `kernel` module:
```shell
$ python grakel/tests/test_kernels.py --help
usage: test_kernels.py [-h] [--verbose] [--problematic] [--slow]
[--ignore_warnings] [--dataset DATASET] [--normalize]
[--develop | --all | --main]
A test file for all kernels
optional arguments:
-h, --help show this help message and exit
--verbose print kernels with their outputs on stdout
--problematic allow execution of problematic test cases in development
--slow allow execution of slow test cases in development
--ignore_warnings ignore warnings produced by kernel executions
--dataset DATASET chose the datset you want the tests to be executed
--normalize normalize the kernel output
--develop execute only tests connected with current development
--all execute all tests
--main execute the main tests [default]
```
for testing `graph_kernels`:
```shell
$ python grakel/tests/test_graph_kernel.py --help
usage: test_graph_kernels.py [-h] [--verbose] [--problematic] [--slow]
[--normalize] [--ignore_warnings]
[--dataset DATASET] [--develop | --all | --main]
A test file for all kernels
optional arguments:
-h, --help show this help message and exit
--verbose print kernels with their outputs on stdout
--problematic allow execution of problematic test cases in development
--slow allow execution of slow test cases in development
--normalize normalize the kernel output
--ignore_warnings ignore warnings produced by kernel executions
--dataset DATASET chose the datset you want the tests to be executed
--develop execute only tests connected with current development
--all execute all tests
--main execute the main tests [default]
```
and for testing the `Graph` class:
```shell
$ python grakel/tests/test_graph.py --help
usage: test_graph.py [-h] [--verbose] [--ignore_warnings]
A test file for all `Graph` type objects
optional arguments:
-h, --help show this help message and exit
--verbose verbose outputs on stdout
--ignore_warnings ignore warnings produced by kernel executions
```
You can also execute the kernel test locally through a *test-main-function* as
```shell
$ python -m grakel.tests
```
Contributing
============
For learning how to integrate your own kernel, please read section *Write your own kernel* inside
the package [documentation][doc].
For contributing to the GraKeL project, please read section *contributing* inside the package [documentation][doc].
[doc]: https://ysig.github.io/GraKeL/dev/
Citation
========
If you use GraKeL in a scientific publication, please cite our paper:
```
@article{siglidis2018grakel,
title={GraKeL: A Graph Kernel Library in Python},
author={Siglidis, Giannis and Nikolentzos, Giannis and Limnios, Stratis and Giatsidis, Christos and Skianis, Konstantinos and Vazirgiannis, Michalis},
journal={arXiv preprint arXiv:1806.02193},
year={2018}
}
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
grakel-dev-0.1a5.tar.gz
(1.1 MB
view hashes)
Built Distributions
Close
Hashes for grakel_dev-0.1a5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ac58715ccc6f2f792ed8c258a9b0380d7cfdb3d39fc2a3258f15bac3b426891 |
|
MD5 | 4a45164a481eb43da5306a2c283bbeb6 |
|
BLAKE2b-256 | 31ead1d4c3b40bb3725d56c49c4994a586981605b84fb423a6b04d1b04ed316f |
Close
Hashes for grakel_dev-0.1a5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76ab86c9ad4d3b6ec32061123afc8da18f0d51852f1b0811a87af6fc979f0dd8 |
|
MD5 | 94d2270fc46532eaa475f5d28f644011 |
|
BLAKE2b-256 | 8856911b7a6b8fd019fb2275b53336c16acd808183d0fe1bb05792c5f94064cd |
Close
Hashes for grakel_dev-0.1a5-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2084c814a97be2bd1128a674fdd4703fff41c9543d4af28625b340f7b9443682 |
|
MD5 | eca9c302e85472bd507428f1170e8c99 |
|
BLAKE2b-256 | ff7eff07e8ec69616ba06fa5f1ef870f3da353ae56e64ced6a656effe0846a40 |
Close
Hashes for grakel_dev-0.1a5-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4131a06acd0c08d8d0231b7aa4acddbe369df26814e33133f0939b193418e4d6 |
|
MD5 | 198a8980d0edff6414b926fcc41293c6 |
|
BLAKE2b-256 | 9fd44c5fc600795c4210308bac7120ca11feaf4c132462b597411287df62a3a7 |
Close
Hashes for grakel_dev-0.1a5-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 245c86ad37a9bf61c65d47abc599ce41b15c0bb5e42c818b575b788649d47119 |
|
MD5 | b35b6a032781d78ab670a5f4ec484147 |
|
BLAKE2b-256 | 27d1e377a1aff0ae81950950463386cc215d65a7fbc070e826ac658958ceec93 |
Close
Hashes for grakel_dev-0.1a5-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acf9234a8674b9c2dd2fd4f46630a54ff47554114878404da810570a60d4180d |
|
MD5 | 976a248a5dd2cf00911b6d75f81f6e4c |
|
BLAKE2b-256 | dc53fb68bb084b4a8f7f134d98c860608c67c25246bd1dc632a5dca8a96ad544 |
Close
Hashes for grakel_dev-0.1a5-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0514549e460a9e7baf1d852bebcb131a1afca31cda98eb549360a7aaa828bf88 |
|
MD5 | 38d1ed1ce094ac77881f47eb51690ec8 |
|
BLAKE2b-256 | 196f7a9bc464b4e427d5bee3bddd24c789e6792e81bde5ef3e44eac326306558 |
Close
Hashes for grakel_dev-0.1a5-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a333ae38d2c0653939983b6e783ac1fe5295fd4d1e9910bddee70ad7e4acfb32 |
|
MD5 | 1e08e392c8e6f1ca73e093e787c0a531 |
|
BLAKE2b-256 | dcb934f0401d5b6572ad56db9a6236d3276697874583462cc50fccfa2f0efa5f |
Close
Hashes for grakel_dev-0.1a5-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63b5a66bca6194b2d25fbcfc257de3e4837786a5ccb1d05c82de7030a7f6747d |
|
MD5 | f75c6bf782e1cfae6cc455a3ebf10a30 |
|
BLAKE2b-256 | 096ffecd523321207166d09a01853fe36873f94338cfa0f7a360186e8cb1f541 |
Close
Hashes for grakel_dev-0.1a5-cp27-cp27m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e12457938d79664c26a628f1bfe11252d40bc0e5d84068fa45fada233706d92 |
|
MD5 | 8954048fd8a3dc306cd2676788a78f6a |
|
BLAKE2b-256 | 81fd43dea5948a41d638f4c35249ce28f04fabccff1558e44a86cead2f09e05e |