Graphs

Module dedicated to mine graph patterns from graph data.

GraphMDL+

class skmine.graph.graphmdl.graph_mdl.GraphMDL[source]

This is a python re-implementation of the GraphMDL family of approaches for extracting a small and descriptive set of graph patterns from graph data. This re-implementation supports directed graphs only, but supports multi-graphs.

This is a python re-implementation of the original Java algorithm, which is available at ‘https://gitlab.inria.fr/fbariatt/graphmdl’. As such, some functionalities are not available in this version, such as a full support of graph automorphisms.

Author: Arnauld Djedjemel

References

F. Bariatti, “Mining Tractable Sets of Graph Patterns with the Minimum Description Length Principle”, PhD thesis, Université de Rennes 1, 2021. Available: https://hal.inria.fr/tel-03523742

F. Bariatti, P. Cellier, and S. Ferré. “GraphMDL+ : interleaving the generation and MDL-based selection of graph patterns”, in Proceedings of the 36th Annual ACM Symposium on Applied Computing, Mar. 2021, pp. 355–363. doi: 10.1145/3412841.3441917.

fit(D, timeout=None)[source]

Execute GraphMDl on a given data graph

Parameters
  • D (networkx graph. All edges need to be labeled.) –

  • timeout (int , default=None) – Maximum time for the algorithm execution (approx.).

Returns

Return type

GraphMDL

patterns()[source]

Return the patterns found by the algorithm after fit has been called.

Returns

Return type

set

description_length()[source]

Return the MDL description length (model + encoded data) for the best code table found by the algorithm.

Returns

Return type

float

initial_description_length()[source]

Return the MDL description length for the initial –singleton-only– code table CT0.

Returns

Return type

float

discover(*args, **kwargs)[source]

Provide a summary of the algorithm execution