热线电话:13121318867

登录
2018-12-08 阅读量: 1358
GPR是什么算法

GaussianProcessRegressor 类实现了回归情况下的高斯过程(GP)模型。

为此,需要实现指定GP的先验。

当参数 normalize_y=False 时,先验的均值 通常假定为常数或者零; 当 normalize_y=True 时,先验均值通常为训练数 据的均值。

而先验的方差通过传递 内核(kernel) 对象来指定。

通过 最大化基于传递 optimizer 的对数边缘似然估计(LML),内核的超参可以在 GaussianProcessRegressor 类执行拟合过程中被优化。

由于 LML 可能会存在多个 局部最优解,因此优化过程可以通过指定 n_restarts_optimizer 参数进行 多次重复。

通过设置内核的超参初始值来进行第一次优化的运行。

后续的运行 过程中超参值都是从合理范围值中随机选取的。

如果需要保持初始化超参值, 那么需要把优化器设置为 <cite>None</cite> 。

目标变量中的噪声级别通过参数 alpha 来传递并指定,要么全局是常数要么是一个数据点。

请注意,适度的噪声水平也可以有助于处理拟合期间的数字问题,因为它被有效地实现为吉洪诺夫正则化(Tikhonov regularization), 即通过将其添加到核心矩阵的对角线。

明确指定噪声水平的替代方法是将 WhiteKernel 组件包含在内核中, 这可以从数据中估计全局噪声水平(见下面的示例)。

算法实现是基于 [RW2006] 中的算法 2.1 。除了标准 scikit learn 估计器的 API 之外, GaussianProcessRegressor 的作用还包括:

  • 允许预测,无需事先拟合(基于GP先验)
  • 提供了一种额外的方法 sample_y(X) , 其评估 在给定输入处从 GPR (先验或后验)绘制的样本
  • 公开了一种方法 log_marginal_likelihood(theta) , 可以在外部使用其他方式选择超参数,例如通过马尔科夫链蒙特卡罗链(Markov chain Monte Carlo)
0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据