Skip to content

Releases: sb-ai-lab/Whydra

Whydra 0.1.1

Choose a tag to compare

@dwemer8 dwemer8 released this 09 Oct 16:14

New algorithms

  • CFCI (StandaloneCFCIStable) — conservative FCI.
  • RFCI (StandaloneRFCIStable).
  • GFCI (StandaloneGFCIStable) — the initial CPDAG is built by Whydra's own GES implementation (Chickering 2002), module whydra.algorithms.score_based.
  • FCI+ (StandaloneFCIPlusStable).
  • FCI-stable with a cache of CI tests, sequential and parallel (StandaloneFCIStableCached, StandaloneFCIStableParallelCached); cached parallel variants of CFCI and FCI+.
  • ParallelPCStable is exported from the package root.
  • Algorithms can be created by name: whydra.create_standalone_algorithm("rfci_stable", alpha=0.01), or run via whydra.run_standalone_algorithm(...).

Changes

  • Background knowledge (whydra.BackgroundKnowledge) for the PC and FCI families: required and forbidden directed edges (require, forbid) with a choice of the stage at which they are applied — before skeleton search, between orientation passes, or after orientation.
  • FCI-stable rewritten: orientation rules R1, R2, R5 and R10 fixed, Possible-D-SEP search parallelized.
  • PC-stable: with stable=True the separating sets of a pair are merged, and the Meek rules got a cycle guard — orientations now match causal-learn. Parallel PC is faster: workers receive a snapshot of the graph instead of the whole CausalGraph, and nodes are distributed in chunks.
  • Own graph structures (whydra.algorithms.graph_core): causal-learn is no longer required at runtime. New runtime dependency: networkx.
  • Data loaders split into whydra.data modules; BenchmarkCaseRepository added. main.py reads cases from whydra_benchmarks/cases/<benchmark>/<case>/{input,ground.truth}.

Breaking changes

  • Removed modules whydra.utils and whydra.data.loaders (loaders are now imported from whydra.data), as well as standalone/fci_algo.py, parallel_rai_stable.py and standalone_raistable.py. StandaloneRAIStable and StandaloneFCIStable remain in the public API.
  • Algorithms return a GeneralGraph from whydra.algorithms.graph_core instead of causal-learn's. Edges are available via graph.get_graph_edges().

Installation

pip install -U whydra

v0.1.0

Choose a tag to compare

@Eighonet Eighonet released this 06 Oct 20:01

What's Changed

  • Package Whydra for PyPI (pip install whydra) by @Eighonet in #1

New Contributors

Full Changelog: https://github.com/sb-ai-lab/Whydra/commits/v0.1.0