---
title: 'Causal-Learn+: Expanded Causal Discovery'
url: https://www.emergentmind.com/topics/causal-learn
type: topic
---

# Causal-Learn+: Expanded Causal Discovery

Searching arXiv for recent papers on causal-learn and closely related causal structure learning toolkits/frameworks.
**causal-learn+** is a useful umbrella term for a broadened ecosystem around **causal-learn**, extending from a Python causal discovery library to a wider research-and-tooling landscape that includes structure learning from observational data, Markov blanket and local discovery, intervention-driven online causal learning, causal representation learning, dynamic causal graph estimation, and benchmark-oriented evaluation frameworks. In the narrowest sense, the closest canonical referent is **causal-learn**, an open-source Python library for causal discovery from observational data [2307.16405]. In a broader encyclopedia sense, the term also naturally covers adjacent “plus” capabilities emphasized by related systems such as **Causal Learner**, which adds simulation, benchmark Bayesian networks, local causal structure learning, and Markov blanket learning [2103.06544], as well as research directions that push beyond static observational DAG discovery into interventions, sequential interaction, high-dimensional observations, relational data, and time-varying causal structure [2010.06164].

## 1. Definition and scope

In its most direct sense, **causal-learn** is an **open-source Python library for causal discovery** whose stated goal is to provide a comprehensive collection of causal discovery methods in a native Python ecosystem [2307.16405]. It is designed simultaneously for practitioners, researchers, developers, and learners, and it emphasizes easy-to-use APIs, modular functionality, detailed documentation, and broad method coverage [2307.16405]. The library is available at `https://github.com/py-why/causal-learn`, and the paper gives the installation command `pip install causal-learn` [2307.16405].

The “plus” in **causal-learn+** is best understood as a wider functional envelope rather than a formally named package. The most explicit nearby precedent is **Causal Learner**, described as an **open-source toolbox for learning causal structure and Markov blankets (MBs) from data**, with support for simulated Bayesian network data generation, global causal structure learning, local causal structure learning, Markov blanket learning, and algorithm evaluation [2103.06544]. This broader packaging makes it a natural point of comparison for anyone seeking not only causal graph learning, but also benchmarking, simulation, local discovery, and evaluation support [2103.06544].

A plausible implication is that **causal-learn+** denotes an ecosystemic concept: a causal discovery platform plus surrounding capabilities for benchmarking, extensibility, intervention-aware learning, graph utilities, and specialized settings such as time series, latent variables, or high-dimensional perceptual observations. That broader interpretation is consistent with how the underlying literature separates core DAG discovery software from adjacent research frameworks for causal learning under richer assumptions and data modalities [2307.16405] [2010.06164].

## 2. Core software substrate: causal-learn in Python

**causal-learn** is positioned as a Python-native alternative to prior ecosystems centered on Java or R, such as TETRAD, `pcalg`, and `bnlearn`, and also as distinct from Python wrappers that still depend on Java or R backends [2307.16405]. Its main architectural claim is that it is **fully developed in Python**, which the paper presents as important for deployment, modification, extension, and integration into Python workflows [2307.16405].

The library organizes causal discovery around several major method families. These include **constraint-based methods**, **score-based methods**, **functional causal model (FCM)-based methods**, **hidden-variable methods**, and **time-series statistical analysis** [2307.16405]. It also exposes modular components for **(conditional) independence tests**, **score functions**, **graph operations**, and **evaluation metrics**, which makes it usable not only as a set of end-user algorithms but also as a development substrate for new methods [2307.16405].

The paper identifies the following graph objects as central to the library’s graph layer: **DAGs**, **CPDAGs**, **PDAGs**, **PAGs**, and **Markov Equivalence Class (MEC)** [2307.16405]. This matters because different discovery procedures target different equivalence classes or graph types, and the graph utility module supports transformations among several of these representations [2307.16405].

The API style is intentionally minimal. The paper’s example is:

```python
# apply PC with default parameters
cg = pc(data)
# visualization
cg.draw_pydot_graph()
```

This example shows that algorithms are callable as Python functions, default parameters are available, and the returned graph object exposes a visualization method [2307.16405]. The paper also provides explicit locations for examples and documentation: usage examples live under the repository’s `tests` directory, and documentation is hosted at `https://causal-learn.readthedocs.io/en/latest/` [2307.16405].

## 3. Methodological coverage

The scope of **causal-learn** is broad by the standards of causal discovery software. Among **constraint-based methods**, the paper lists **PC**, **Missing-Value PC (MV-PC)**, **FCI**, and **CD-NOD** [2307.16405]. PC is presented as a classical method under causal sufficiency, with output as a **Completed Partially Directed Acyclic Graph (CPDAG)**, and support for different conditional independence tests depending on data type, including **Fisher-Z**, **Chi/G-squared**, and **KCI** [2307.16405]. FCI is presented as the method for settings with hidden confounders, while CD-NOD extends discovery to nonstationary or heterogeneous observational data [2307.16405].

Among **score-based methods**, the library includes **GES**, **A\*** exact search, **Dynamic Programming** exact search, and **GRaSP** [2307.16405]. The paper describes score functions including **BIC** for linear Gaussian data, **BDeu** for discrete data, and **Generalized Score** for more flexible nonparametric cases [2307.16405]. This coverage gives the library both equivalence-class search methods and exact or permutation-based sparse DAG search methods [2307.16405].

Among **FCM-based methods**, the library includes **LiNGAM**, **DirectLiNGAM**, **VAR-LiNGAM**, **RCD**, **CAM-UV**, **ANM**, and **PNL** [2307.16405]. The paper emphasizes that these methods can produce unique causal directions under stronger assumptions such as non-Gaussianity or additive-noise structure, in contrast to constraint-based and score-based methods that often recover equivalence classes rather than unique DAGs [2307.16405].

The library also includes **GIN** for hidden causal variables in linear non-Gaussian latent variable models, and **Granger causality** as a time-series statistical analysis tool, with the caution that “Granger causality is not necessarily true causality” unless additional assumptions hold [2307.16405]. Supporting modules include **Fisher-Z**, **Missing-value Fisher-Z**, **Chi-Square**, **G-Square**, and **KCI** tests, as well as evaluation metrics including **precision** for arrow directions or adjacency matrices, **recall** for arrow directions or adjacency matrices, and **Structural Hamming Distance** [2307.16405].

A notable comparison point is **Causal Learner**, whose algorithm layer is described as containing **7 global causal structure learning algorithms**, **4 local causal structure learning algorithms**, and **15 Markov blanket learning algorithms** [2103.06544]. The global algorithms mentioned are **SCA**, **PC**, **TPDA**, **GES**, **GSBN**, **MMHC**, **PC-stable**, **F2SL-c**, and **F2SL-s**; the local algorithms are **PCD-by-PCD**, **MB-by-MB**, **CMB**, and **LCS-FS**; and the MB algorithms are **GS**, **IAMB**, **interIAMB**, **IAMBnPC**, **interIAMBnPC**, **Fast-IAMB**, **FBED**, **MMMB**, **HITON-MB**, **PCMB**, **IPCMB**, **MBOR**, **STMB**, **BAMB**, and **EEMB** [2103.06544]. This broader local/MB coverage is one of the clearest “plus-like” differentiators in the surrounding toolbox landscape [2103.06544].

## 4. Benchmarking, simulation, and evaluation layers

A central distinction between a core discovery library and a “plus” ecosystem is whether it includes a full experimental workflow. **Causal Learner** is especially explicit on this point. It adopts a **three-layer architecture**: a **data layer**, an **algorithm layer**, and an **evaluation layer** [2103.06544]. The data layer generates **discrete** and **continuous** data from benchmark Bayesian networks; the algorithm layer implements global, local, and MB learners; and the evaluation layer provides **10 accuracy metrics** and **2 efficiency metrics** [2103.06544].

The benchmark-network inventory in **Causal Learner** is extensive. For discrete Bayesian networks it includes **CANCER**, **EARTHQUAKE**, **SURVEY**, **ASIA**, **SACHS**, **CHILD**, **INSURANCE**, **WATER**, **MILDEW**, **ALARM**, **BARLEY**, **HAILFINDER**, **HEPAR II**, **WIN95PTS**, **PATHFINDER**, **ANDES**, **DIABETES**, **PIGS**, **LINK**, and **MUNIN (4 subnetworks)**, with node counts ranging from 5 to 1041 [2103.06544]. For continuous Bayesian networks it includes **SANGIOVESE**, **MEHRA**, **MAGIC-NIAB**, **ECOLI70**, **MAGIC-IRRI**, and **ARTH150** [2103.06544]. The paper stresses that generated data can be output as text, which improves usability relative to `bnlearn`-generated objects stored in R classes [2103.06544].

By contrast, **causal-learn** includes “a collection of well-tested benchmark datasets” and evaluation metrics, but the paper does not enumerate dataset names in the excerpt and does not present runtime or scalability benchmarks [2307.16405]. This asymmetry suggests that when **causal-learn+** is interpreted as a research testbed rather than only a method library, the closest documented “plus” pattern in the literature is the benchmark-oriented architecture exemplified by **Causal Learner** [2103.06544].

## 5. Extensions beyond static observational DAG discovery

The surrounding literature broadens the notion of causal learning in several directions that are not native to a standard observational-only Python library.

A first extension is **online causal structure learning with interventions**. The paper **“Causal Structure Learning: a Bayesian approach based on random graphs”** proposes a lightweight intervention-driven framework in which an agent repeatedly acts on an environment, observes full outcomes, and updates edge-level beliefs \(p_{ij}\in[0,1]\) about whether \(X_i\to X_j\) exists [2010.06164]. The graph is treated as a random variable whose edges are sampled according to these probabilities, and beliefs are updated through a Bayes-like multiplicative rule after each intervention [2010.06164]. This is not a standard constraint-based or score-based passive discovery algorithm, and the paper is explicit that it uses random or \(\varepsilon\)-greedy interventions rather than a formal information-theoretic intervention-design criterion [2010.06164]. A plausible implication is that **causal-learn+** can encompass sequential, interaction-based structure learning where graph uncertainty is updated online rather than searched in batch.

A second extension is **causal reinforcement learning**. **“Learning by Doing: An Online Causal Reinforcement Learning Framework with Causal-Aware Policy”** formulates an MDP whose state space is factored into semantically meaningful variables and interprets actions as interventions on those state variables [2402.04869]. The framework alternates between intervention-based graph updating—using estimated average treatment effects to orient ancestry and score-based pruning to refine direct edges—and policy learning under a graph-derived action mask [2402.04869]. The paper proves performance bounds linking graph-mask quality to policy quality and reports strong structure-learning improvement from online interventions in a simulated fault alarm environment, with structure F1 improving from THP initialization \(0.6383 \pm 0.0168\) to \(0.8413 \pm 0.0203\) for Causal PPO, and from random initialization \(0.1884 \pm 0.0127\) to \(0.8402 \pm 0.0188\) [2402.04869]. This direction pushes “causal-learn+” toward active control settings in which discovery and decision-making are tightly coupled.

A third extension is **dynamic causal structure discovery**. **“Dynamic Causal Structure Discovery and Causal Effect Estimation”** models time-varying contemporaneous adjacency matrices \(\mathbf{B}_t\) and optional lagged matrices \(\mathbf{W}_t\), using basis expansions such as
\[
B_{ab,t} = \sum_{k=1}^{K} F_k(t)\gamma_{abk}
\]
to capture smoothly varying edge strengths over time [2501.06534]. This yields a dynamic LSEM or dynamic SVAR framework with a smooth acyclicity constraint and a closed-form time-varying causal effect formula [2501.06534]. This is a concrete example of how the “plus” layer extends causal graph learning from static DAGs to nonstationary time-series with both contemporaneous and lagged effects.

A fourth extension is **causal representation learning** from high-dimensional observations. **iCITRIS**, introduced in **“Causal Representation Learning for Instantaneous and Temporal Effects in Interactive Systems,”** addresses the case where latent causal variables are observed only through images or videos and where some causal effects appear instantaneous at the measurement rate [2206.06169]. The method jointly learns latent causal variables and an instantaneous-plus-temporal graph, using observed intervention targets and differentiable causal discovery within the latent prior [2206.06169]. This extends causal learning beyond tabular variables and into interactive perceptual systems.

## 6. Specialized settings and “plus” research frontiers

Several additional literatures illuminate what a comprehensive **causal-learn+** conception would need to cover.

One frontier is **Markov blanket and local causal structure learning**. **Causal Learner** explicitly distinguishes **global causal structure learning**—learning an entire DAG—from **local causal structure learning**, which learns the parents and children of a target variable, and **Markov blanket learning**, which learns the parents, children, and spouses of a target [2103.06544]. The paper emphasizes that MB learning is important not only for causal analysis but also for **feature selection**, since the MB of a class variable is described as an optimal feature set for classification [2103.06544]. This target-centered perspective is largely absent from standard global-graph narratives but is central to many practical workflows.

A second frontier is **relational and multi-table causality**. **“Causal Relational Learning”** introduces **CaRL**, a declarative Datalog-like language for specifying relational causal background knowledge and causal queries over multi-entity, multi-relation data [2004.03644]. The framework addresses settings in which treatment and outcome can lie on different entity types, where confounding may require joins across tables, and where relational spillovers violate standard no-interference assumptions [2004.03644]. Rather than learning a graph from a single flat table, it grounds a relational causal graph and compiles query-specific unit tables for standard adjustment [2004.03644]. This suggests that a true “plus” system would need to move beyond single-matrix inputs.

A third frontier is **cyclic and feedback structure**. **“Cycles in Causal Learning”** proves that, for specific self-referential cyclic factorizations such as
\[
p(x,y)=p(x\mid y)p(y\mid x),
\]
the resulting joint distribution also factorizes as \(p(x)p(y)\), so the variables are independent [2007.12335]. More generally, the paper shows that an \(n\)-variable cyclic factorization has zero multivariate mutual information and also factorizes as though the cycle were reversed [2007.12335]. The result is a sharp warning that methods based on mutual information, conditional independence, or heuristics inspired by independent causal mechanisms may fail to detect cyclic causal dependence [2007.12335]. Since mainstream toolkits like **causal-learn** are DAG-oriented, this literature marks an important limitation of standard causal discovery assumptions.

A fourth frontier is **weaker-faithfulness and conservative discovery**. The thesis **“Nonlinearity, Feedback and Uniform Consistency in Causal Structural Learning”** develops a generalized \(k\)-Triangle Faithfulness condition for nonparametric families and studies uniform consistency of a modified conservative constraint-based algorithm under weaker assumptions than standard strong faithfulness [2308.07520]. It also explores latent-variable learning via rank constraints and GIN conditions in settings with some feedback and nonlinearity [2308.07520]. A plausible implication is that “causal-learn+” should include not only more methods but also more explicit handling of ambiguity, near-unfaithfulness, and partial output rather than always forcing a decisive graph.

A fifth frontier is **causal overhypothesis learning and benchmark design**. **“Towards Understanding How Machines Can Learn Causal Overhypotheses”** adapts the blicket detector paradigm into a benchmark for testing whether agents learn and transfer abstract causal schemas such as conjunctive versus disjunctive rules [2206.08353]. The paper shows that deep RL solves seen tasks largely by memorization, tabular Q-learning solves the tiny space without generalization, Decision Transformer performance depends critically on forced exploration, and language models show partial schema recognition but poor object-level precision [2206.08353]. This benchmark-oriented direction matters because standard discovery libraries typically evaluate graph recovery, not abstraction, transfer, or active exploratory competence.

## 7. Conceptual significance and limitations

Across these strands, the most stable meaning of **causal-learn+** is not a single codebase but a broadened causal learning paradigm that combines software modularity, graph learning, evaluation infrastructure, and extensions to richer data-generating regimes. At its core, **causal-learn** provides a Python-native library with representative methods across the major observational causal discovery families, graph utilities, and modular reusable components [2307.16405]. Around that core, related work demonstrates how a “plus” ecosystem can include benchmark Bayesian-network simulation and MB learning [2103.06544], online intervention-driven structure updating [2010.06164], graph-aware policy learning [2402.04869], latent-variable and high-dimensional observation models [2206.06169], relational causal reasoning [2004.03644], and dynamic time-varying graph estimation [2501.06534].

At the same time, the literature is equally clear about limitations. **causal-learn** is primarily a library for **observational data**, and many of its methods rely on assumptions such as causal sufficiency, faithfulness, acyclicity, or structural model class restrictions [2307.16405]. **Causal Learner** explicitly notes that future extensions should include algorithms “without causal sufficiency or faithfulness assumptions,” which implies that the current version is largely oriented toward methods that do assume them [2103.06544]. The intervention-driven random-graph learner is Bayesian only in an informal sense and lacks a coherent posterior over DAGs or exact intervention-selection theory [2010.06164]. Online causal RL frameworks often rely on unusually strong assumptions, such as alignment between action space and state variables or direct intervention semantics over state components [2402.04869]. Dynamic graph methods introduce smoothness assumptions via basis approximations and do not provide full estimator asymptotics [2501.06534]. Cyclic settings expose a more fundamental limitation: observational dependence can fail to reveal feedback structure at all [2007.12335].

A common misconception is that a causal discovery library can serve as a fully automatic engine that converts correlations into causal truth. The broader research record does not support that interpretation. Several of the surrounding papers underscore that success depends on assumptions, structural restrictions, intervention access, benchmark construction, or domain-specific prior knowledge [2010.06164] [2004.03644] [2308.07520]. In this sense, **causal-learn+** is best understood not as a claim of complete automation, but as a layered methodological stack: core graph-learning algorithms, reusable statistical modules, benchmark and simulation support, and specialized frameworks for settings where static observational DAG discovery is inadequate.

## 8. Historical and comparative context

The software and research landscape reflected in these papers shows a transition from classical causal discovery packages toward broader, more integrated ecosystems. **Causal Learner** is written partly in **R** for data generation and partly in **MATLAB** for algorithms and evaluation [2103.06544]. **causal-learn** distinguishes itself by being fully implemented in **Python**, with no Java or R dependency [2307.16405]. This makes it more aligned with contemporary machine learning workflows and easier to embed in Python pipelines [2307.16405].

Methodologically, the field has also broadened from classical observational-only DAG discovery toward online interaction, representation learning, and decision-oriented causal modeling. The random-graph Bayesian learner explicitly uses interventions because “observations alone do not uniquely identify a directed graph” [2010.06164]. iCITRIS shows that causal variable identification from images becomes entangled with graph discovery when instantaneous effects are present, and resolves this only by using observed intervention targets and partially-perfect interventions [2206.06169]. Dynamic structure discovery addresses time-varying policy effects and changing mechanisms [2501.06534]. Causal RL closes the loop between acting, discovering, and exploiting causal structure [2402.04869]. These developments indicate that the “plus” in **causal-learn+** refers not merely to more algorithms, but to a shift from static batch discovery toward richer causal learning systems.

## 9. Outlook

The literature suggests several durable directions for the continuing expansion of **causal-learn+**. One direction is more complete support for **local discovery**, **Markov blankets**, and integrated **benchmarking** in Python-native ecosystems, paralleling what **Causal Learner** assembled in MATLAB/R [2103.06544]. Another is stronger support for **interventional** and **online** workflows, where graph updates are driven by sequential interaction rather than passive datasets [2010.06164] [2402.04869]. A third is handling **nonstationarity**, **relational schemas**, **high-dimensional sensory inputs**, and **latent variables** as first-class settings rather than peripheral special cases [2004.03644] [2206.06169] [2501.06534]. A fourth is more explicit treatment of **ambiguity**, **near-unfaithfulness**, and **feedback**, where conservative or partial outputs may be more scientifically appropriate than a single definitive DAG [2308.07520] [2007.12335].

Taken together, these works define **causal-learn+** as an emerging encyclopedic category: a Python-centered causal discovery foundation anchored by **causal-learn** [2307.16405], expanded by benchmark and MB/local-discovery toolboxes such as **Causal Learner** [2103.06544], and conceptually extended by intervention-driven, representation-level, relational, dynamic, and decision-theoretic causal learning frameworks [2010.06164] [2206.06169] [2402.04869] [2501.06534].

Source: https://www.emergentmind.com/topics/causal-learn