Repository navigation
Releases: sb-ai-lab/Whydra
Releases · sb-ai-lab/Whydra
Release list
Whydra 0.1.1
New algorithms
- CFCI (
StandaloneCFCIStable) — conservative FCI. - RFCI (
StandaloneRFCIStable). - GFCI (
StandaloneGFCIStable) — the initial CPDAG is built by Whydra's own GES implementation (Chickering 2002), modulewhydra.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+. ParallelPCStableis exported from the package root.- Algorithms can be created by name:
whydra.create_standalone_algorithm("rfci_stable", alpha=0.01), or run viawhydra.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=Truethe 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 wholeCausalGraph, 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.datamodules;BenchmarkCaseRepositoryadded.main.pyreads cases fromwhydra_benchmarks/cases/<benchmark>/<case>/{input,ground.truth}.
Breaking changes
- Removed modules
whydra.utilsandwhydra.data.loaders(loaders are now imported fromwhydra.data), as well asstandalone/fci_algo.py,parallel_rai_stable.pyandstandalone_raistable.py.StandaloneRAIStableandStandaloneFCIStableremain in the public API. - Algorithms return a
GeneralGraphfromwhydra.algorithms.graph_coreinstead of causal-learn's. Edges are available viagraph.get_graph_edges().
Installation
pip install -U whydra