As far as I know, it's not yet possible to specify arbitrary covariance kernels. However, there are a few ways to control the kernel type. You can specify the type of covariance function using the "CovarianceType"
suboption like so:
pred = Predict[data,
Method -> {
"GaussianProcess",
"CovarianceType" -> "Linear"
}
]
The possible kernels for "CovarianceType"
are:
{
"Periodic", "SquaredExponential", "RationalQuadratic", "Linear",
"Mattern5/2", "Mattern3/2", "NN", "WN"
}
You can also specify algebraic combinations of these kernels, such as:
"CovarianceType" -> "Linear" + "Periodic" * "RationalQuadratic"
Finally, there is the "Composite"
option value, which will try and find a sensible combination of kernels that works well. Furthermore, there is the "SearchMethod"
suboption for composite kernels, which can be set to "Greedy"
or "SimulatedAnnealing"
. E.g.:
Method -> {
"GaussianProcess",
"CovarianceType" -> "Composite",
"SearchMethod" -> "SimulatedAnnealing"
}
After the predictor pred
has been computed, you can investigate what it's using by evaluating:
pred[[1]]
Edit
As far as I know, there is currently no implementation of mean functions, but I might be wrong about that.
Edit 2
Since I answered this question, the documentation has been updated. Be sure to check it for any updates to the GaussianProcess method:
http://reference.wolfram.com/language/ref/method/GaussianProcess.html