Models each node's conditional mean as an exact Gaussian process of its parents, with a squared-exponential (ARD) kernel - one lengthscale per parent, which captures non-linearity and interactions automatically. Kernel hyperparameters (lengthscales, signal and noise variance) are set by type-II maximum likelihood; there is no MCMC. A node with no parents is modelled by its marginal (a Normal). This is Kagu's default and only mechanism.
Structure discovery uses the exact GP log marginal likelihood, which - in contrast to fast basis/eigenfunction approximations - is well calibrated: for a genuinely unidentifiable (e.g. linear-Gaussian) edge it does not manufacture spurious confidence about direction.
Posterior function samples for effect propagation are drawn by pathwise / decoupled sampling (a random-feature prior plus the exact data update), so each draw is a coherent function evaluable at any point - giving correctly correlated uncertainty for do-calculus contrasts.
Super class
Mechanism -> GPMechanism
Public fields
num_resultsInteger - number of posterior draws to keep (default 1000).
n_featuresInteger - random Fourier features for pathwise sampling (default 300).
jitterNumeric - diagonal jitter for numerical stability (default 1e-6).
Methods
GPMechanism$new()
Create a new GPMechanism.
Usage
GPMechanism$new(num_results = 1000L, n_features = 300L, jitter = 1e-06)GPMechanism$predict_mean()
Conditional mean draws (see Mechanism).
GPMechanism$log_marglik()
Exact GP log marginal likelihood (see Mechanism).
GPMechanism$node_terms()
Per-node summary rows: each parent's direct local effect (function gradient at the parent means) plus the residual noise sd.