Home

Awesome

PyPI version Build Status codecov

graphical_model_learning is a Python package for learning the structure (and parameters) of graphical models, including directed acyclic graphs (DAGs), (maximal) ancestral graphs (MAGs), and undirected graphs. This includes classical structure learning algorithms, Bayesian methods, and active learning methods.

Structure learning algorithms include:

We plan to include:

graphical_model_learning is a part of the causaldag ecosystem of packages.

Install

Install the latest version of graphical_model_learning:

$ pip3 install graphical_model_learning

Documentation

Documentation is available at https://graphical_model_learning.readthedocs.io/en/latest/

Simple Example

>>> from graphical_model_learning import pcalg
>>> from graphical_models.rand import directed_erdos, rand_weights
>>> from conditional_independence import MemoizedCI_Tester
>>> from conditional_independence import partial_correlation_suffstat, partial_correlation_test
>>> import numpy as np
>>> np.random.seed(1221)
>>> nnodes = 10
>>> d = directed_erdos(nnodes, .2)
>>> g = rand_weights(d)
>>> samples = g.sample(300)
>>> suffstat = partial_correlation_suffstat(samples)
>>> ci_tester = MemoizedCI_Tester(partial_correlation_test, suffstat)
>>> estimated_graph = pcalg(set(range(nnodes)), ci_tester)
>>> d.shd_skeleton(estimated_graph)
1

License

Released under the 3-Clause BSD license (see LICENSE.txt):

Copyright (C) 2021
Chandler Squires <csquires@mit.edu>