Skip to content

Learning graphical models, with a focus on causal models and learning from interventional data.

License

Notifications You must be signed in to change notification settings

uhlerlab/graphical_model_learning

Repository files navigation

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:

  • PC algorithm
  • Greedy Sparsest Permutation (GSP) algorithm
  • Interventional and Unknown-Target Interventional GSP (IGSP and UT-IGSP)

We plan to include:

  • Greedy Equivalence Search (GES) algorithm
  • Minimal IMAP MCMC

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>