26 #ifndef __NONPARAMETRICPROCESS_HPP__    27 #define __NONPARAMETRICPROCESS_HPP__    73     double getSignalVariance();
    74     size_t nHyperParameters();
    75     vectord getHyperParameters();
    76     void setHyperParameters(
const vectord& theta);
    96     vectord computeCrossCorrelation(
const vectord &query);
    97     double computeSelfCorrelation(
const vectord& query);
   105     score_type mScoreType;
   106     learning_type mLearnType;
   114                   double selfcorrelation);
   127   inline size_t KernelRegressor::nHyperParameters()
   131     return mKernel.nHyperParameters()
   132     + mMean.nParameters() + 1;
   136     return mKernel.nHyperParameters();  
   140   inline vectord KernelRegressor::getHyperParameters()
   142     using boost::numeric::ublas::subrange;
   145     vectord result(nHyperParameters());
   146     size_t nk = mKernel.nHyperParameters();
   147     size_t nm = mMean.nParameters();
   149     subrange(result,0,nk) = mKernel.getHyperParameters();
   151     vectord mean = mMean.getParameters();
   152     std::transform(mean.begin(), mean.end(), result.begin()+nk, (double (*)(double)) log);
   154     result(nk+nm) = std::log(
mSigma);
   159     return mKernel.getHyperParameters(); 
   163   inline void KernelRegressor::setHyperParameters(
const vectord &theta)
   165     using boost::numeric::ublas::subrange;
   168     size_t nk = mKernel.nHyperParameters();
   169     size_t nm = mMean.nParameters();
   171     mKernel.setHyperParameters(subrange(theta,0,nk));
   174     std::transform(theta.begin()+nk, theta.begin()+nk+nm, 
   175                result.begin(), (double (*)(double)) log);
   176     mMean.setParameters(result);
   178     mSigma = std::exp(theta(nk+nm));
   182     mKernel.setHyperParameters(theta); 
   194     const size_t nSamples = mData.getNSamples();
   195     matrixd corrMatrix(nSamples,nSamples);
   200   inline vectord KernelRegressor::computeCrossCorrelation(
const vectord &query)
   201   { 
return mKernel.computeCrossCorrelation(mData.
mX,query); }
   203   inline double KernelRegressor::computeSelfCorrelation(
const vectord& query)
   204   { 
return mKernel.computeSelfCorrelation(query); }
   207                               double selfcorrelation)
   209     vectord newK(correlation);
   210     utils::append(newK, selfcorrelation);
 matrixd computeDerivativeCorrMatrix(int dth_index)
Computes the derivative of the correlation matrix with respect to the dth hyperparameter. 
matrixd computeCorrMatrix()
Computes the Correlation (Kernel or Gram) matrix. 
Kernel (covariance) functions. 
void cholesky_add_row(TRIA &L, const VECTOR &v)
decompose the symmetric positive definit matrix A into product L L^T. 
void computeCholeskyCorrelation()
Computes the Cholesky decomposition of the Correlation matrix. 
void updateSurrogateModel()
Sequential update of the surrogate model by adding a new row to the Kernel matrix, more precisely, to its Cholesky decomposition. 
Namespace of the library interface. 
Abstract class to implement Bayesian regressors. 
void fitSurrogateModel()
Computes the initial surrogate model and updates the kernel parameters estimation. 
matrixd mL
Cholesky decomposition of the Correlation matrix. 
Dataset model to deal with the vector (real) based datasets. 
double mSigma
Signal variance. 
virtual void precomputePrediction()=0
Sets the kind of learning methodology for kernel hyperparameters. 
const double mRegularizer
Std of the obs. model (also used as nugget) 
Abstract module for a Bayesian regressor. 
Abstract class to implement non-parametric processes. 
void addNewPointToCholesky(const vectord &correlation, double selfcorrelation)
Adds a new point to the Cholesky decomposition of the Correlation matrix.