Exposed public API for RSL-w
Recursive Skeleton Learning for bounded-clique graphs (RSL-W).
Implements the bounded clique-number variant of RSL as defined in our JMLR paper “Recursive Causal Discovery,” using the paper’s consolidated notation/theorem numbering.
learn_and_get_skeleton(ci_test, data, clique_num, find_markov_boundary_matrix_fun=None)
Learn a skeleton with bounded clique number using RSL-W.
Parameters
ci_test : Callable[[int, int, list[int], np.ndarray], bool]
Conditional independence oracle supplied by the caller.
data : ndarray or pandas.DataFrame
Observational dataset arranged as (n_samples, n_vars).
clique_num : int
Upper bound on the clique number of the underlying graph.
find_markov_boundary_matrix_fun : Callable[[np.ndarray], np.ndarray], optional
Optional custom Markov-boundary estimator.
Returns
nx.Graph Learned undirected skeleton.
Source code in rcd/rsl/rsl_w.py
RSL-w implementation details
Bases: _RSLBase
Specialization of :class:_RSLBase for bounded clique number.
Source code in rcd/rsl/rsl_w.py
__init__(ci_test, find_markov_boundary_matrix_fun=None)
Configure the bounded-clique learner.
Source code in rcd/rsl/rsl_w.py
find_neighborhood(var)
Find the neighborhood of var via Proposition 37.
Source code in rcd/rsl/rsl_w.py
is_removable(var)
Check whether var is removable via Theorem 36.