A Gaussian process is a stochastic process whose realizations consist of random values associated with every point in a range of times (or of space) such that each such random variable has a normal distribution. Moreover, every finite collection of those random variables has a multivariate normal distribution.
A Gaussian process can be used as a prior probability distribution over functions in Bayesian inference. Given any set of N points in the desired domain of your functions, take a multivariate Gaussian whose covariance matrix parameter is the Gram matrix of N points with some desired kernel, and sample from that Gaussian. Inference of continuous values with a Gaussian process prior is known as Gaussian process regression.
from miml import datasets from miml.regression import GaussianProcessRegression fn = os.path.join(datasets.get_data_home(), 'regression', 'diabetes.csv') df = DataFrame.read_table(fn, delimiter=',', format='%64f', index_col=0) x = df.values y = array(df.index.data) model = GaussianProcessRegression(sigma=0.06, L=0.01) model.fit(x, y) print(model.predict(x[:10,:]))
>>> run script... array([149.63350796115427, 74.28911292438774, 139.68088364423298, 203.983666653454, 134.05095165718586, 96.03965267973412, 136.64741122676267, 62.37623771726341, 108.97096286320787, 306.95039738967637])