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)








暂无数据