我正在使用sklearn中的模块GaussianProcessesRegression进行简单的高斯回归。但是我试图实现我自己的内核,而不是模块内核提供的内核。高斯过程scikit中的回归学习没有内核梯度评估
我遇到了超参数优化的问题(这可能是我错误地实现了内核梯度,我没有看到错误)。所以我的问题是:
如何在GaussianProcessesRegression模块没有在优化过程中评估内核梯度的情况下运行'fit'(超参数优化发生的地方)?
从文档中可以设置变量`eval_gradient = False',但实际上我不能用这个变量调用任何方法。
这是我使用的代码的想法:
import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
import kernels as my_kernel
kernel1 = 1.0*my_kernel.RBF_D(length_scale=np.linspace(1,10,10), length_scale_bounds=(1e-3, 100.0))
gp = GaussianProcessRegressor(kernel=kernel1, n_restarts_optimizer=10)
gp.fit(Xtrain,Ytrain)
hyperp = = gp.kernel_.get_params()
y_gp,y_train_std=gp.predict(Xtrain,return_std=True)
如果我尝试调用
gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=0,eval_gradient=False)
我有错误:
`回溯(最近通话最后):...
gp = GaussianProcessRegressor(kernel = kernel1,n_restarts_optimizer = 10,eval_gradient = FALSE) 类型错误:初始化()得到了一个意想不到的关键字参数'eval_gradient '
同样,如果我尝试
gp.fit(Xtrain, Ytrain, eval_gradient=False)
`类型错误:飞度()得到了一个意想不到的关键字参数' eval_gradient''
显然它没有工作,但我没有任何其他想法。有关如何做到这一点的任何提示?
(我是用我自己的内核,这一事实是不适合此问题)
向我们提供有关您当前正在运行的代码尝试此操作的提示。 –
我重新编辑了,谢谢。 – Doccm