Good day!
I was using GPFlow regression to model function on a sphere (spherical distance between point and North Pole). Here is my code:
model = gpflow.models.GPR(data=(nodes_train, fs_train), kernel=kernel, noise_variance=0.01)
gpflow.utilities.set_trainable(model.likelihood.variance, False)
model.likelihood.variance.assign(0.0001)
optimize_GPR(model, 500)
I've chosen train&test set randomly on the sphere using
train_test_split(data, test_size = 0.33)
I set one parameter not trainable, because my model gave bad prediction on both test & train sets. Now I have very bad predictions (using predict_f()
) on test set and very good predictions on train set, also on test set it looks like model gives arbitrary distributed values with large covariance of predictions. Here is a visualisation (I postpone the value of the function from the corresponding point on a sphere)
Question: How can I fix predictions on a test set? What could be the problem?
Images: