主要参考这两篇的内容
http://kingfengji.com/?p=44
http://kastnerkyle.github.io/posts/introduction-to-gaussian-processes/
简单来说,就是训练数据x和测试数据x*对应的函数f和f*符合高斯分布,而高斯分布的均值向量、协方差矩阵,都可以由x和x*计算得到。在已知f和f*的联合概率分布的情况下,并且f的分布概率可以由x计算,就可以得到f*的后验分布概率。
得到f*的后验分布概率后,以其均值向量的值作为对x*对应y*的估计,以其协方差矩阵的对角元素作为估计值的不确定度。由此可知,高斯过程不仅能够给出预测值,还可以给出预测值的不确定度。
主要计算公式如下
其中k,k*等为协方差矩阵,具体含义如下:
在第二个连接中给出了高斯过程的python实现,在python的机器学习框架scikit-learn中也有相关实现,实现过程在sklearn的gaussian_process模块中,使用时:
from sklearn import gaussian_process
gp =
gaussian_process.GaussianProcess(theta0=1e-2, thetaL=1e-4,
thetaU=1e-1)
这里指定的三个参数是进行最大似然估计时的参数
gp.fit(X,y)
y_pred,sigma_pred=gp.predict(x,eval_MSE_True)