OILMMPosterior#
- class gpjax.models.OILMMPosterior(model, train_data)[source]#
Bases:
PosteriorThe conditioned OILMM process.
OILMM’s orthogonal mixing matrix decouples a \(P\)-output problem into \(M\) independent single-output problems, so conditioning it is conditioning each latent GP on its projected observations. This object holds the resulting \(M\)
ExactPosteriorfactorisations and reconstructs predictions in output space on demand:posterior = model.condition(train_data) # or: model | train_data predictive = posterior(test_inputs)
Like every conditioned process in GPJax, the factorisations are computed once, at
conditiontime, and cached here; each query is a view of them.- Parameters:
model (OILMMModel)
train_data (Dataset)
- mixing_matrix#
The orthogonal mixing matrix used for reconstruction.
- evidence_correction#
The Prop. 9 projection correction, cached so that
log_marginal_likelihoodis a view rather than a recomputation.- Type:
float | jaxtyping.Float[jaxlib._jax.Array, ‘’] | jaxtyping.Float[ndarray, ‘’]
- property log_marginal_likelihood: float | Float[jaxlib._jax.Array, ''] | Float[ndarray, '']#
The evidence \(\log p(Y)\), Prop. 9 of Bruinsma et al. (2020).
The sum of the latent processes’ log marginal likelihoods plus the projection correction, both cached at
conditiontime.
- predict(test_inputs, train_data=None, *, covariance='diagonal', return_full_cov=None)[source]#
Sugar for calling the posterior:
predict(t) == self(t).Defaults to
covariance="diagonal": see__call__()for why.- Parameters:
test_inputs (Float[Array, 'N D']) – Input locations of shape
(N, D).train_data (Dataset | None) – Accepted and ignored — this process is already conditioned on its training set.
covariance (tp.Literal['dense', 'diagonal']) – Whether to return the dense joint covariance or only the marginal variances.
return_full_cov (bool | None) – Deprecated.
Truemaps tocovariance="dense"andFalsetocovariance="diagonal".
- Returns:
The predictive distribution at the inputs.
- Return type: