MCSL (gCastle)

Module name

gcastle_mcsl

Package

gCastle

Version

1.0.3

Language

Python

Docs

here

Paper

Ng et al.[1]

Graph type

DAG

MCMC

No

Edge constraints

No

Data type

C

Data missingness

Intervention type

Docker

bpimages/gcastle:1.0.3

Masked Gradient-Based Causal Structure Learning

A gradient-based algorithm for non-linear additive noise data by learning the binary adjacency matrix.

Example

Config file: gcastle.json

Command:

snakemake --cores all --use-apptainer --configfile config/gcastle.json

Fig. 50 shows the pattern graph’s FP/P vs. TP/P benchmark results for 12 gCastle algorithms (and comparison with BOSS (TETRAD) and Iterative MCMC (BiDAG)). The benchmark is based on 5 datasets corresponding to 5 realisations of a 20-variable random Gaussian SEM with Erdős-Rényi structure (expected degree 4, max parents 5). Each dataset contains 300 standardized samples. The SEM parameters are uniformly sampled from [0.25, 1].

FP/P vs. TP/P for gCastle algorithms

Fig. 43 FP/P vs. TP/P for gCastle algorithms.

Example JSON

[
  {
    "id": "gcastle_mcsl",
    "model_type": "nn",
    "hidden_dim": 16,
    "graph_thresh": 0.5,
    "l1_graph_penalty": "2e-3",
    "learning_rate": "3e-2",
    "max_iter": 5,
    "iter_step": 100,
    "init_iter": 2,
    "h_tol": "1e-10",
    "init_rho": "1e-5",
    "rho_thresh": "1e14",
    "h_thresh": 0.25,
    "rho_multiply": 10,
    "temperature": 0.2,
    "device_type": "cpu",
    "device_ids": "0",
    "timeout": null
  }
]