OILMMPosterior#

class gpjax.models.OILMMPosterior(model, train_data)[source]#

Bases: Posterior

The 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\) ExactPosterior factorisations 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 condition time, and cached here; each query is a view of them.

Parameters:
latent_posteriors#

The M conditioned latent processes.

Type:

tuple

mixing_matrix#

The orthogonal mixing matrix used for reconstruction.

Type:

gpjax.models.oilmm.OrthogonalMixingMatrix

evidence_correction#

The Prop. 9 projection correction, cached so that log_marginal_likelihood is a view rather than a recomputation.

Type:

float | jaxtyping.Float[jaxlib._jax.Array, ‘’] | jaxtyping.Float[ndarray, ‘’]

num_outputs#

The number of outputs, \(P\).

Type:

int

num_latent_gps#

The number of latent GPs, \(M\).

Type:

int

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 condition time.

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. True maps to covariance="dense" and False to covariance="diagonal".

Returns:

The predictive distribution at the inputs.

Return type:

GaussianDistribution