GP: Bayesian modelling using Gaussian processes. The 'gp' programs implement Bayesian models for regression and classification tasks that are based on Gaussian process priors over functions. For details, see Carl Rasmussen's thesis, Evaluation of Gaussian Process and Other Methods for Non-linear Regression, and my technical report on "Monte Carlo implementation of Gaussian process models for Bayesian regression and classification". A Gaussian process specifies a distribution over functions from some number of inputs to some number of real outputs. (For the Gaussian processes implemented here, the functions for different outputs are independent.) In the Bayesian models based on these Gaussian processes, the functions in question are used to define a model for the target attributes in training and test cases given the values of nthe input attributes in these cases. The Gaussian process gives the prior distribution over these functions. A Gaussian process is specified by giving its covariance function, which is expressed in terms of "hyperparameters", which are themselves given prior distributions. (The means for the Gaussian processes implemented here are always zero.) To see how the form of the covariance function and the priors for the hyperparameters are specified, see gp-spec.doc. The models based on these Gaussian processes are described using a general scheme that is also used for neural network models, see model-spec.doc for details. Survival models are not allowed. The conditional distribution of the targets is specified in terms of values derived from the outputs of the Gaussian process. For "real", "binary", and "count" models, the number of values needed is the same as the number of targets. These values define the conditional means for "real" targets, the logit of the probability of class 1 for "binary" targets, and the log of the Poisson mean for "count" targets. For "class" models, there must be only one target, and the number of values needed is the same as the number of classes. These values are equal to the logs of the probabilities of the various classes, plus an arbitrary constant. The values used to define the target distributions can simply be equal to the outputs of the Gaussian process, if the number of outputs matches the number of required values. Alternatively, there can be more outputs than required values, provided the number of outputs is an integer multiple of the number of required values. These outputs are taken to define the required values by taking the log of the sum of the exponentials of all outputs in a group associated with that value. Specifically, if the model requires k values, v_0,...,v_{k-1} (eg, for the conditional means of k real targets), and there are kq outputs of the Gaussian process, o_0, ... o_{kq-1}, then v_i will be computed as v_i = log (exp(v_{iq}) + exp(v_{iq+1} + ... + exp(v_{iq+q-1}) ) Copyright (c) 1995-2004 by Radford M. Neal