GOLEM (gCastle)

Module name

gcastle_golem

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

Gradient-based Optimization of dag-penalized Likelihood for learning linEar dag Models

A more efficient version of NOTEARS that can reduce number of optimization iterations.

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. 32 FP/P vs. TP/P for gCastle algorithms.

Example JSON

[
  {
    "id": "gcastle_golem",
    "lambda_1": "2e-2",
    "lambda_2": 5.0,
    "equal_variances": true,
    "non_equal_variances": true,
    "learning_rate": "1e-3",
    "num_iter": "1e+5",
    "checkpoint_iter": 5000,
    "graph_thres": 0.3,
    "device_type": "cpu",
    "device_ids": 0,
    "timeout": null
  }
]