Overview

Scikit-network is an open-source python package for machine learning on graphs.

Each graph is represented by its adjacency matrix in the sparse CSR format of scipy.

An overview of the package is presented in this notebook.

Installation

To install scikit-network, run this command in your terminal:

$ pip install scikit-network

If you don’t have pip installed, this Python installation guide can guide you through the process.

Alternately, you can download the sources from Github and run:

$ cd <scikit-network folder>
$ python setup.py develop

Import

Import scikit-network in Python:

import sknetwork as skn

Get started

A graph is represented by its adjacency matrix. When the graph is bipartite, it can be represented by its biadjacency matrix (most often, a rectangular matrix). Check our tutorial for various ways of loading a graph (from a list of edges, a dataframe or a CSV file, for instance).

Each algorithm is represented as an object with a fit method.

Here is an example to cluster the Karate club graph with the Louvain algorithm:

from sknetwork.data import karate_club
from sknetwork.clustering import Louvain

adjacency = karate_club()
algorithm = Louvain()
algorithm.fit(adjacency)

If the graph is bipartite, the algorithm applies to nodes corresponding to the rows of the biadjacency matrix; specific outputs for nodes corresponding to rows and columns of the biadjacency matrix can be obtained with the respective suffixes _row_ and _col_.

More details are provided in this tutorial.