GoGP
GoGP is a library for probabilistic programming around Gaussian processes. It uses Infergo for automatic differentiation and inference.
GoGP is built around a dual view on the Gaussian process
- as a stochastic process,
- as a probabilistic model with respect to kernel.
Gaussian process instance
GP, the Gaussian process type, encapsulates similarity and
noise kernels, their parameters, and observation inputs and
outputs:
// Type GP is the barebone implementation of GP.
type GP struct {
NDim int // number of dimensions
Simil, Noise Kernel // kernels
ThetaSimil, ThetaNoise []float64 // kernel parameters
X [][]float64 // inputs
Y []float64 // outputs
Parallel bool // when true, covariances are computed in parallel
}Public methods defined on GP fall into two groups: Gaussian
process fitting and prediction, on one hand, and
probabilistic model interface, on the other hand.