Sequential Gaussian processes


#1

I’m new to pymc3. What is the best way to use GP for time series prediction in an online fashion. Is there an
existing implementation that supports a moving window where new points can be added to the kernel and old points discarded and continue with the posterior prediction online without increasing the number of points used.

Appreciate your help. Thanks.


#2

I’m not aware of any work that’s been done towards this in PyMC3. Would inference on hyperparameters happen at each step of the window? Or would this be done before hand? I think if the inference step is done beforehand, it wouldn’t be too challenging to write a custom prediction function to accomplish what you describe.


#3

Thanks for your reply. I was thinking of doing inference on hyperparms just once before the start of window. The custom prediction in this case would need the re-evaluation of inverse of kernel every step and the size gets larger with each step. There are ways to partly store some part of cholesky factorisation and only update the part for new points to make this efficient. I was wondering if any python package supports this implementation. I will try and code this up if it doesn’t exist. Another option is to reduce the size of window and pay up the cost of inversion.


#4

I see, no this is not implemented. I don’t know of a python package that supports cholesky updates within GPs, but it certainly may exist. If you succeed in coding this up please submit a PR! This would be a very welcome contribution.