我试图通过使用GPyTorch来拟合Gaussian Process Regression模型来学习高斯过程。但是,我无法找到一种方法来组合不同的内核,如高斯过程的sklearn实现所示。我使用的是GPyTorch,因为它更灵活,与scikit-learn相比,它有更多可以使用的内核。任何帮助,特别是对代码片段的帮助都是非常有用的。
谢谢。
发布于 2019-05-20 12:34:59
例如,要通过加法组成两个内核,可以直接添加内核模块:
self.covar_module = ScaleKernel(RBFKernel() + WhiteNoiseKernel())也可以将内核的输出添加到forward方法中:
covar_x = self.rbf_kernel_module(x) + self.white_noise_module(x)然后,GPRegressionModel的类将如下所示:
class GPRegressionModel(gpytorch.models.ExactGP):
def __init__(self, train_x, train_y, likelihood):
super(GPRegressionModel, self).__init__(train_x, train_y, likelihood)
self.mean_module = gpytorch.means.ConstantMean()
self.covar_module = ScaleKernel(RBFKernel() + WhiteNoiseKernel())
def forward(self, x):
mean_x = self.mean_module(x)
covar_x = self.covar_module(x)
return gpytorch.distributions.MultivariateNormal(mean_x, covar_x)https://datascience.stackexchange.com/questions/51758
复制相似问题