I'm currently experimenting with Gaussian processes.
I decided to use matlab + gpml (http://www.gaussianprocess.org/gpml/code/) for playing around with Gaussian processes a bit.
I'd like to do Gaussian process regression on 2d data (2d inputs and 1d output). For that I created some simple test data:
#x y z
0 0 -1
0 7 -1
3 7 -1
8 3 -1
5 5 -1
8 8 5
The result looks like this (I used a unit lengthscale and magnitude with the squared exponential cov function):
Now I wanted to add some variance at position (8,8), so I added the following to the training data:
8 8 -1
8 8 10
8 8 -10
8 8 -8
...
I expected the variance at this point to increase a lot. While the mean increased at this point, the variance hardly changed at all. This is the result:
I tried to play around with the hyperparameters, but I couldn't get a result that looked like the one I expected: the variance increasing at (8,8)
I'm really stuck here, so I'd really appreciated, if anyone could explain this behavior to.
Best Answer
If you have different y-values for the point (8,8) then you are supposing that there is noise present. You should model this noise, for instance in the covariance function. Try a covariance like this one: