paris: Hierarchical graph clustering algorithm and dendrogram processing
=========================

paris is a Python module that provides an implementation of the hierarchical clustering algorithm for graphs, paris.
It provides four algorithms able to process dendrograms in order to extract best clusters, clusterings or distances.

Installation
------------

Install the latest version of cylouvain using ``pip`` ::

    $ pip install pyparis

Dependencies
------------

cylouvain requires:

- Python (>= 2.7 or >= 3.4)
- NumPy
- NetworkX

Simple example
--------------

Build a simple graph with NetworkX::

    >>> import networkx as nx
    >>> graph = nx.Graph()
    >>> graph.add_nodes_from(['a', 'b', 'c', 'd', 'e', 'f'])
    >>> graph.add_edges_from([('a', 'b'), ('a', 'c'), ('b', 'c'),
                              ('c', 'd'),
                              ('d', 'e'), ('d', 'f'), ('f', 'e')])

Compute a partition of the nodes using cylouvain::

    >>> from paris import paris
    >>> dendrogram = paris(graph)

Compute the best clusters, clusterings and distances::

    >>> best_cluster = best_cluster_cut(dendrogram)
    >>> best_homogneous_clustering = best_homogeneous_cut(dendrogram)
    >>> best_heterogneous_clustering = best_heterogeneous_cut(dendrogram)
    >>> best_distance = best_distance

License
-------

Released under the MIT license::

   Copyright (C) 2018 Bertrand Charpentier <bercha@kth.se>
