CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::gp::GaussianProcess Class Reference

This class implements a Gaussian Process (GP) regression model for non-parametric Bayesian regression. More...

#include <gp.h>

Collaboration diagram for cmp::gp::GaussianProcess:

Public Member Functions

 GaussianProcess ()
 
 ~GaussianProcess ()=default
 
 GaussianProcess (const std::shared_ptr< covariance::Covariance > &kernel, const std::shared_ptr< mean::Mean > &mean, Eigen::Ref< const Eigen::VectorXd > params, double nugget=1e-8)
 
 GaussianProcess (const GaussianProcess &other)
 
GaussianProcessoperator= (const GaussianProcess &other)
 
 GaussianProcess (GaussianProcess &&other) noexcept
 
GaussianProcessoperator= (GaussianProcess &&other) noexcept
 
void set (const std::shared_ptr< covariance::Covariance > &kernel, const std::shared_ptr< mean::Mean > &mean, Eigen::Ref< const Eigen::VectorXd > params, double nugget=1e-8)
 
void condition (const Eigen::Ref< const Eigen::MatrixXd > &xObs, const Eigen::Ref< const Eigen::VectorXd > &yObs, bool copyData=true, bool normalizeY=false)
 Condition the GP on a set of observations (allow predictive posterior computation)
 
void fit (const Eigen::Ref< const Eigen::MatrixXd > &xObs, const Eigen::Ref< const Eigen::VectorXd > &yObs, const Eigen::Ref< const Eigen::VectorXd > &lb, const Eigen::Ref< const Eigen::VectorXd > &ub, const method &method, const nlopt::algorithm &alg, const double &tol_rel, bool copyData=true, bool normalizeY=false, const std::shared_ptr< cmp::prior::Prior > &prior=cmp::prior::Uniform::make(), const std::vector< bool > &logScale={})
 Fit the Gaussian Process to the observations.
 
Eigen::VectorXd getParameters () const
 Get the hyperparameters of the Gaussian Process.
 
std::shared_ptr< cmp::mean::MeangetMean () const
 Gets the shared pointer to the GP prior mean function.
 
std::shared_ptr< cmp::covariance::CovariancegetKernel () const
 Gets the shared pointer to the GP covariance kernel.
 
double getNugget () const
 Gets the observation noise variance (nugget).
 
Eigen::MatrixXd covariance (Eigen::Ref< const Eigen::VectorXd > par) const
 Evaluates the covariance matrix of the Kernel.
 
Eigen::MatrixXd covarianceGradient (Eigen::Ref< const Eigen::VectorXd > par, const int &i) const
 
Eigen::MatrixXd covarianceHessian (Eigen::Ref< const Eigen::VectorXd > par, const size_t &i, const size_t &j) const
 
const Eigen::LDLT< Eigen::MatrixXd > & getCovDecomposition () const
 
const Eigen::VectorXd & getAlpha () const
 
const Eigen::VectorXd & getDiagCovInverse () const
 
const Eigen::VectorXd & getResidualVector () const
 
const Eigen::Ref< const Eigen::MatrixXd > & getXObs () const
 
const Eigen::Ref< const Eigen::VectorXd > & getYObs () const
 
size_t nObs () const
 Returns the number of training observations.
 
Eigen::VectorXd priorMean (Eigen::Ref< const Eigen::VectorXd > par) const
 Evaluates the mean on the observations.
 
Eigen::VectorXd priorMeanGradient (Eigen::Ref< const Eigen::VectorXd > par, const int &i) const
 Evaluate the gradient of the mean function.
 
Eigen::VectorXd residual (Eigen::Ref< const Eigen::VectorXd > par) const
 Evaluate the difference between the observation and the mean function.
 
std::pair< double, doublepredict (const Eigen::Ref< const Eigen::VectorXd > &x, type predictionType=type::POSTERIOR) const
 Compute the predictive mean and variance at a new point.
 
double predictMean (const Eigen::Ref< const Eigen::VectorXd > &x, type predictionType=type::POSTERIOR) const
 Compute the predictive mean at a new point.
 
std::pair< Eigen::VectorXd, Eigen::MatrixXd > predictMultiple (const Eigen::Ref< const Eigen::MatrixXd > &x_pts, type predictionType=type::POSTERIOR) const
 Compute the predictive variance at a new set of points.
 
Eigen::VectorXd predictMeanMultiple (const Eigen::Ref< const Eigen::MatrixXd > &x_pts, type predictionType=type::POSTERIOR) const
 Compute the predictive mean at a new set of points.
 
std::pair< double, doublepredictLOO (const size_t &i) const
 Compute the leave-one-out predictive mean and variance at the i-th observation point.
 
double logLikelihood () const
 Compute the log-likelihood of the observations given the hyperparameters.
 
double logLikelihoodLOO (const size_t &i) const
 Compute the leave-one-out log-likelihood of the observations given the hyperparameters.
 
Eigen::MatrixXd expectedVarianceImprovement (const Eigen::Ref< const Eigen::MatrixXd > &x_pts, const Eigen::Ref< const Eigen::MatrixXd > &x_pending, double nu) const
 
double objectiveFunction (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::Ref< Eigen::VectorXd > grad, const std::shared_ptr< cmp::prior::Prior > &prior)
 
double objectiveFunctionLOO (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::Ref< Eigen::VectorXd > grad, const std::shared_ptr< cmp::prior::Prior > &prior)
 
double objectiveFunctionLOOMSE (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::Ref< Eigen::VectorXd > grad, const std::shared_ptr< cmp::prior::Prior > &prior)
 

Private Member Functions

void compute (const Eigen::Ref< const Eigen::VectorXd > &par)
 

Private Attributes

Eigen::VectorXd par_
 Model hyperparameters.
 
std::shared_ptr< covariance::CovariancepKernel_
 Covariance kernel function.
 
std::shared_ptr< mean::MeanpMean_
 Prior mean function.
 
double nugget_
 Observation noise variance (nugget).
 
std::optional< Eigen::MatrixXd > xObs_
 Owning storage for training input matrix.
 
std::optional< Eigen::VectorXd > yObs_
 Owning storage for training target vector.
 
std::optional< Eigen::Ref< const Eigen::MatrixXd > > pXObs_
 Reference wrapper to training input matrix.
 
std::optional< Eigen::Ref< const Eigen::VectorXd > > pYObs_
 Reference wrapper to training target vector.
 
Eigen::LDLT< Eigen::MatrixXd > covDecomposition_
 LDLT decomposition of the training covariance matrix.
 
Eigen::VectorXd alpha_
 GP weights vector: alpha = (K + s^2 I)^-1 (y - m).
 
Eigen::VectorXd diagCovInverse_
 Diagonal elements of the inverse covariance matrix.
 
Eigen::VectorXd residual_
 Residuals of the mean function: y - m(x).
 
bool normalizeY_ = false
 Flag indicating whether target normalization is active.
 
cmp::scaler::StandardScaler yScaler_
 Scaler used to normalize the target vector.
 

Detailed Description

This class implements a Gaussian Process (GP) regression model for non-parametric Bayesian regression.

Mathematical Foundations

A Gaussian Process is a collection of random variables, any finite number of which have a joint Gaussian distribution. It is completely specified by its mean function \(m(\mathbf{x})\) and covariance (kernel) function \(k(\mathbf{x}, \mathbf{x}')\):

\[ f(\mathbf{x}) \sim \mathcal{GP}\left(m(\mathbf{x}), k(\mathbf{x}, \mathbf{x}')\right) \]

Given a training dataset \(\mathcal{D} = \{(\mathbf{x}_i, y_i)\}_{i=1}^N\) where \(\mathbf{X} \in \mathbb{R}^{N \times D}\) and \(\mathbf{y} \in \mathbb{R}^N\), the joint distribution of the training outputs and the predictive function value \(f(\mathbf{x}_*)\) at a test point \(\mathbf{x}_*\) is:

\[ \begin{bmatrix} \mathbf{y} \\ f(\mathbf{x}_*) \end{bmatrix} \sim \mathcal{N}\left( \begin{bmatrix} \mathbf{m}(\mathbf{X}) \\ m(\mathbf{x}_*) \end{bmatrix}, \begin{bmatrix} \mathbf{K}(\mathbf{X}, \mathbf{X}) + \sigma_n^2 \mathbf{I} & \mathbf{k}(\mathbf{X}, \mathbf{x}_*) \\ \mathbf{k}(\mathbf{x}_*, \mathbf{X}) & k(\mathbf{x}_*, \mathbf{x}_*) \end{bmatrix} \right) \]

where \(\sigma_n^2\) is the nugget (representing the observation noise variance).

The conditional posterior distribution at the test point \(\mathbf{x}_*\) is given by:

\[ f(\mathbf{x}_*) | \mathbf{X}, \mathbf{y}, \mathbf{x}_* \sim \mathcal{N}(\mu_*, \sigma_*^2) \]

where the posterior mean \(\mu_*\) and variance \(\sigma_*^2\) are calculated as:

\[ \mu_* = m(\mathbf{x}_*) + \mathbf{k}(\mathbf{x}_*, \mathbf{X}) \left[ \mathbf{K}(\mathbf{X}, \mathbf{X}) + \sigma_n^2 \mathbf{I} \right]^{-1} (\mathbf{y} - \mathbf{m}(\mathbf{X})) \]

\[ \sigma_*^2 = k(\mathbf{x}_*, \mathbf{x}_*) - \mathbf{k}(\mathbf{x}_*, \mathbf{X}) \left[ \mathbf{K}(\mathbf{X}, \mathbf{X}) + \sigma_n^2 \mathbf{I} \right]^{-1} \mathbf{k}(\mathbf{X}, \mathbf{x}_*) \]

Implementation Algorithms

  1. LDLT Decomposition: Directly inverting \(\mathbf{K}_y = \mathbf{K}(\mathbf{X}, \mathbf{X}) + \sigma_n^2 \mathbf{I}\) is numerically unstable and computationally expensive ( \(O(N^3)\)). We construct \(\mathbf{K}_y\) and compute its LDLT decomposition:

    \[ \mathbf{K}_y = \mathbf{L} \mathbf{D} \mathbf{L}^T \]

  2. Backsubstitution: We precompute the weight vector \(\boldsymbol{\alpha}\) by solving:

    \[ \mathbf{L} \mathbf{D} \mathbf{L}^T \boldsymbol{\alpha} = \mathbf{y} - \mathbf{m}(\mathbf{X}) \]

    The predictive posterior mean is then efficiently evaluated as:

    \[ \mu_* = m(\mathbf{x}_*) + \mathbf{k}(\mathbf{x}_*, \mathbf{X}) \boldsymbol{\alpha} \]

  3. Hyperparameter Optimization: The hyperparameters \(\boldsymbol{\theta}\) of the covariance and mean functions are optimized by maximizing the marginal log-likelihood:

    \[ \log p(\mathbf{y} | \mathbf{X}, \boldsymbol{\theta}) = -\frac{1}{2} (\mathbf{y} - \mathbf{m}(\mathbf{X}))^T \mathbf{K}_y^{-1} (\mathbf{y} - \mathbf{m}(\mathbf{X})) - \frac{1}{2} \log |\mathbf{K}_y| - \frac{N}{2} \log (2\pi) \]

    using gradient-free (e.g., Subplex) or gradient-based NLopt algorithms.

Constraints & Invariants

  • **Nugget ( \(\sigma_n^2\))**: Must be strictly positive ( \(\ge 10^{-12}\), default \(10^{-8}\)) to ensure the covariance matrix remains strictly positive-definite.
  • Training Inputs: Pre-conditions require that the dataset is non-empty ( \(N \ge 1\)).
  • Hyperparameter bounds: Must satisfy the user-specified bounds \(\mathbf{lb} \le \boldsymbol{\theta} \le \mathbf{ub}\).

Constructor & Destructor Documentation

◆ GaussianProcess() [1/4]

cmp::gp::GaussianProcess::GaussianProcess ( )

◆ ~GaussianProcess()

cmp::gp::GaussianProcess::~GaussianProcess ( )
default

◆ GaussianProcess() [2/4]

cmp::gp::GaussianProcess::GaussianProcess ( const std::shared_ptr< covariance::Covariance > &  kernel,
const std::shared_ptr< mean::Mean > &  mean,
Eigen::Ref< const Eigen::VectorXd >  params,
double  nugget = 1e-8 
)

◆ GaussianProcess() [3/4]

cmp::gp::GaussianProcess::GaussianProcess ( const GaussianProcess other)

◆ GaussianProcess() [4/4]

cmp::gp::GaussianProcess::GaussianProcess ( GaussianProcess &&  other)
noexcept

Member Function Documentation

◆ compute()

void GaussianProcess::compute ( const Eigen::Ref< const Eigen::VectorXd > &  par)
private

◆ condition()

void cmp::gp::GaussianProcess::condition ( const Eigen::Ref< const Eigen::MatrixXd > &  xObs,
const Eigen::Ref< const Eigen::VectorXd > &  yObs,
bool  copyData = true,
bool  normalizeY = false 
)

Condition the GP on a set of observations (allow predictive posterior computation)

Parameters
xObsThe observation points
yObsThe observation values
copyDataDecide whether or not to make a deep copy of the data
normalizeYWhether to normalize the observation values
Note
if copyData is false, and normalizeY is true the function will throw an exception, since it cannot normalize the data without owning it.

◆ covariance()

Eigen::MatrixXd GaussianProcess::covariance ( Eigen::Ref< const Eigen::VectorXd >  par) const

Evaluates the covariance matrix of the Kernel.

  • FUNCTIONS FOR THE KERNEL
    Parameters
    parThe vector of hyperparameters
    Returns
    a matrix containing the evaluation of the Kernel on the observation points

◆ covarianceGradient()

Eigen::MatrixXd GaussianProcess::covarianceGradient ( Eigen::Ref< const Eigen::VectorXd >  par,
const int i 
) const

Evaluate the i-th component of the gradient of the covariance matrix.

Parameters
parThe vector of hyperparameters
iThe component of the gradient required

◆ covarianceHessian()

Eigen::MatrixXd GaussianProcess::covarianceHessian ( Eigen::Ref< const Eigen::VectorXd >  par,
const size_t i,
const size_t j 
) const

Evaluate the ij component of the hessian of the covariance matrix.

Parameters
parThe vector of hyperparameters
irow of the hessian matrix
jcolum of the hessian matrix

◆ expectedVarianceImprovement()

Eigen::MatrixXd GaussianProcess::expectedVarianceImprovement ( const Eigen::Ref< const Eigen::MatrixXd > &  x_pts,
const Eigen::Ref< const Eigen::MatrixXd > &  x_pending,
double  nu 
) const
  • FUNCTIONS FOR THE EXPECTED VARIANCE IMPROVEMENT

◆ fit()

void GaussianProcess::fit ( const Eigen::Ref< const Eigen::MatrixXd > &  xObs,
const Eigen::Ref< const Eigen::VectorXd > &  yObs,
const Eigen::Ref< const Eigen::VectorXd > &  lb,
const Eigen::Ref< const Eigen::VectorXd > &  ub,
const method method,
const nlopt::algorithm &  alg,
const double tol_rel,
bool  copyData = true,
bool  normalizeY = false,
const std::shared_ptr< cmp::prior::Prior > &  prior = cmp::prior::Uniform::make(),
const std::vector< bool > &  logScale = {} 
)

Fit the Gaussian Process to the observations.

Parameters
xObsthe observation points
yObsthe observation values
lbthe lower bound for the hyperparameters
ubthe upper bound for the hyperparameters
methodthe method to be used for the optimization
algthe algorithm to be used for the optimization
tol_relthe relative tolerance for the optimization
copyDatawhether to copy the observation data internally (default is true)
normalizeYwhether to normalize the observation values (default is false)
priorthe prior distribution for the hyperparameters (default is uniform prior)
logScalea vector indicating which hyperparameters should be optimized in log scale (default is all false)
  • FIT THE GP

◆ getAlpha()

const Eigen::VectorXd & cmp::gp::GaussianProcess::getAlpha ( ) const
inline

◆ getCovDecomposition()

const Eigen::LDLT< Eigen::MatrixXd > & cmp::gp::GaussianProcess::getCovDecomposition ( ) const
inline

◆ getDiagCovInverse()

const Eigen::VectorXd & cmp::gp::GaussianProcess::getDiagCovInverse ( ) const
inline

◆ getKernel()

std::shared_ptr< cmp::covariance::Covariance > cmp::gp::GaussianProcess::getKernel ( ) const
inline

Gets the shared pointer to the GP covariance kernel.

Returns
Shared pointer to the Covariance object.

◆ getMean()

std::shared_ptr< cmp::mean::Mean > cmp::gp::GaussianProcess::getMean ( ) const
inline

Gets the shared pointer to the GP prior mean function.

Returns
Shared pointer to the Mean object.

◆ getNugget()

double cmp::gp::GaussianProcess::getNugget ( ) const
inline

Gets the observation noise variance (nugget).

Returns
Nugget value.

◆ getParameters()

Eigen::VectorXd cmp::gp::GaussianProcess::getParameters ( ) const
inline

Get the hyperparameters of the Gaussian Process.

Returns
the value of the hyperparameters

◆ getResidualVector()

const Eigen::VectorXd & cmp::gp::GaussianProcess::getResidualVector ( ) const
inline

◆ getXObs()

const Eigen::Ref< const Eigen::MatrixXd > & cmp::gp::GaussianProcess::getXObs ( ) const
inline

◆ getYObs()

const Eigen::Ref< const Eigen::VectorXd > & cmp::gp::GaussianProcess::getYObs ( ) const
inline

◆ logLikelihood()

double GaussianProcess::logLikelihood ( ) const

Compute the log-likelihood of the observations given the hyperparameters.

  • LOG LIKELIHOOD FUNCTIONS
    Returns
    The value of the log-likelihood
    Exceptions
    runtime_errorif the GP is not conditioned

◆ logLikelihoodLOO()

double GaussianProcess::logLikelihoodLOO ( const size_t i) const

Compute the leave-one-out log-likelihood of the observations given the hyperparameters.

Returns
The value of the leave-one-out log-likelihood
Exceptions
runtime_errorif the GP is not conditioned or out_of_range if i is out of range [0, nObs_)

◆ nObs()

size_t cmp::gp::GaussianProcess::nObs ( ) const
inline

Returns the number of training observations.

Returns
Number of training data rows.

◆ objectiveFunction()

double GaussianProcess::objectiveFunction ( const Eigen::Ref< const Eigen::VectorXd > &  x,
Eigen::Ref< Eigen::VectorXd >  grad,
const std::shared_ptr< cmp::prior::Prior > &  prior 
)
  • * OBJECTIVE FUNCTIONS FOR THE OPTIMIZATION

◆ objectiveFunctionLOO()

double GaussianProcess::objectiveFunctionLOO ( const Eigen::Ref< const Eigen::VectorXd > &  x,
Eigen::Ref< Eigen::VectorXd >  grad,
const std::shared_ptr< cmp::prior::Prior > &  prior 
)

◆ objectiveFunctionLOOMSE()

double GaussianProcess::objectiveFunctionLOOMSE ( const Eigen::Ref< const Eigen::VectorXd > &  x,
Eigen::Ref< Eigen::VectorXd >  grad,
const std::shared_ptr< cmp::prior::Prior > &  prior 
)

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ predict()

std::pair< double, double > GaussianProcess::predict ( const Eigen::Ref< const Eigen::VectorXd > &  x,
type  predictionType = type::POSTERIOR 
) const

Compute the predictive mean and variance at a new point.

FUNCTIONS FOR THE PREDICTIVE DISTRIBUTION

Parameters
xThe new prediction point
predictionTypeThe type of prediction (prior or posterior)
Returns
A pair containing the mean and variance of the prediction
  • MAKING PREDICTIONS

◆ predictLOO()

std::pair< double, double > cmp::gp::GaussianProcess::predictLOO ( const size_t i) const

Compute the leave-one-out predictive mean and variance at the i-th observation point.

Parameters
iThe index of the observation point
Returns
A pair containing the mean and variance of the leave-one-out prediction
Exceptions
std::out_of_rangeif i is out of range [0, nObs_) and runtime error if the GP is not conditioned

◆ predictMean()

double GaussianProcess::predictMean ( const Eigen::Ref< const Eigen::VectorXd > &  x,
type  predictionType = type::POSTERIOR 
) const

Compute the predictive mean at a new point.

Note
The predictive mean can be computed in O(n) time for the posterior and O(1) time for the prior. Hence it is better to use this function if only the mean is required.
Parameters
xThe new prediction point
predictionTypeThe type of prediction (prior or posterior)
Returns
The predictive mean

◆ predictMeanMultiple()

Eigen::VectorXd cmp::gp::GaussianProcess::predictMeanMultiple ( const Eigen::Ref< const Eigen::MatrixXd > &  x_pts,
type  predictionType = type::POSTERIOR 
) const

Compute the predictive mean at a new set of points.

Parameters
x_ptsThe new prediction points
predictionTypeThe type of prediction (prior or posterior)
Returns
The predictive mean
Note
The predictive mean can be computed in O(n*m) time for the posterior and O(m) time for the prior, where n is the number of observations and m is the number of prediction points. Hence it is better to use this function if only the mean is required.

◆ predictMultiple()

std::pair< Eigen::VectorXd, Eigen::MatrixXd > cmp::gp::GaussianProcess::predictMultiple ( const Eigen::Ref< const Eigen::MatrixXd > &  x_pts,
type  predictionType = type::POSTERIOR 
) const

Compute the predictive variance at a new set of points.

Parameters
x_ptsThe new prediction points
predictionTypeThe type of prediction (prior or posterior)
Returns
A pair containing the mean and variance of the predictions

◆ priorMean()

Eigen::VectorXd GaussianProcess::priorMean ( Eigen::Ref< const Eigen::VectorXd >  par) const

Evaluates the mean on the observations.

  • FUNCTIONS FOR THE MEAN
    Parameters
    parThe vector of hyperparameters
    Returns
    The mean of the points.

◆ priorMeanGradient()

Eigen::VectorXd GaussianProcess::priorMeanGradient ( Eigen::Ref< const Eigen::VectorXd >  par,
const int i 
) const

Evaluate the gradient of the mean function.

Parameters
parThe vector of hyperparameters
ithe index of the hyperparameter
Returns
a vector containing the computation of the gradient

◆ residual()

Eigen::VectorXd GaussianProcess::residual ( Eigen::Ref< const Eigen::VectorXd >  par) const

Evaluate the difference between the observation and the mean function.

Parameters
parThe vector of hyperparameters
Returns
a vector containing the computation of the residual

◆ set()

void cmp::gp::GaussianProcess::set ( const std::shared_ptr< covariance::Covariance > &  kernel,
const std::shared_ptr< mean::Mean > &  mean,
Eigen::Ref< const Eigen::VectorXd >  params,
double  nugget = 1e-8 
)

A GP is defined by a Kernel function, a mean function, a nugget and its hyperparameters.

Parameters
kernelThe Kernel function
meanThe mean function
paramsThe vector of hyperparameters
nuggetThe nugget value (default is 1e-8)
Note
This function is used to set the Kernel and mean functions of the GP.

Member Data Documentation

◆ alpha_

Eigen::VectorXd cmp::gp::GaussianProcess::alpha_
private

GP weights vector: alpha = (K + s^2 I)^-1 (y - m).

◆ covDecomposition_

Eigen::LDLT<Eigen::MatrixXd> cmp::gp::GaussianProcess::covDecomposition_
private

LDLT decomposition of the training covariance matrix.

◆ diagCovInverse_

Eigen::VectorXd cmp::gp::GaussianProcess::diagCovInverse_
private

Diagonal elements of the inverse covariance matrix.

◆ normalizeY_

bool cmp::gp::GaussianProcess::normalizeY_ = false
private

Flag indicating whether target normalization is active.

◆ nugget_

double cmp::gp::GaussianProcess::nugget_
private

Observation noise variance (nugget).

◆ par_

Eigen::VectorXd cmp::gp::GaussianProcess::par_
private

Model hyperparameters.

◆ pKernel_

std::shared_ptr<covariance::Covariance> cmp::gp::GaussianProcess::pKernel_
private

Covariance kernel function.

◆ pMean_

std::shared_ptr<mean::Mean> cmp::gp::GaussianProcess::pMean_
private

Prior mean function.

◆ pXObs_

std::optional<Eigen::Ref<const Eigen::MatrixXd> > cmp::gp::GaussianProcess::pXObs_
private

Reference wrapper to training input matrix.

◆ pYObs_

std::optional<Eigen::Ref<const Eigen::VectorXd> > cmp::gp::GaussianProcess::pYObs_
private

Reference wrapper to training target vector.

◆ residual_

Eigen::VectorXd cmp::gp::GaussianProcess::residual_
private

Residuals of the mean function: y - m(x).

◆ xObs_

std::optional<Eigen::MatrixXd> cmp::gp::GaussianProcess::xObs_
private

Owning storage for training input matrix.

◆ yObs_

std::optional<Eigen::VectorXd> cmp::gp::GaussianProcess::yObs_
private

Owning storage for training target vector.

◆ yScaler_

cmp::scaler::StandardScaler cmp::gp::GaussianProcess::yScaler_
private

Scaler used to normalize the target vector.


The documentation for this class was generated from the following files: