Scikit learn scikit学习中无核梯度估计的高斯过程回归
我正在使用sklearn中的高斯过程回归模块进行简单的高斯回归。然而,我试图实现我自己的内核,而不是模块内核提供的内核 我在超参数的优化方面遇到了问题(可能是我错误地实现了内核梯度,我没有看到错误)。所以我的问题是: 我如何运行GaussianProcessResgression模块的“fit”(超参数优化发生的地方)方法,而不在优化过程中评估核梯度 从文档中可以设置变量'eval_gradient=False',但实际上我不能用这个变量调用任何方法 这是我正在使用的代码的想法:Scikit learn scikit学习中无核梯度估计的高斯过程回归,scikit-learn,regression,gradient,gaussian,Scikit Learn,Regression,Gradient,Gaussian,我正在使用sklearn中的高斯过程回归模块进行简单的高斯回归。然而,我试图实现我自己的内核,而不是模块内核提供的内核 我在超参数的优化方面遇到了问题(可能是我错误地实现了内核梯度,我没有看到错误)。所以我的问题是: 我如何运行GaussianProcessResgression模块的“fit”(超参数优化发生的地方)方法,而不在优化过程中评估核梯度 从文档中可以设置变量'eval_gradient=False',但实际上我不能用这个变量调用任何方法 这是我正在使用的代码的想法: import
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(内核=kernel1,n_重新启动\u优化器=10,eval_梯度=False)
TypeError:init()获得意外的关键字参数“eval_gradient”
同样,如果我尝试
gp.fit(Xtrain、Ytrain、eval\u gradient=False)
`TypeError:fit()获得意外的关键字参数“eval_gradient”
这很明显,它不起作用,但我没有任何其他想法。有没有关于如何做到这一点的提示
(我使用自己的内核这一事实与这个问题无关)您提到了“文档”
它解释了GPR可以调用您提供的优化器,它可以在调用目标函数时指定
eval\u gradient
。为我们提供了一个提示,说明您当前正在运行哪些代码来尝试此操作。我重新编辑了,谢谢。是的,我假设有一种方法可以将相同的变量也指定给默认优化器。但如果可能的话,我不知道该怎么做,“意外的关键字参数‘eval_gradient’”诊断是准确的,并且与文档相符。看起来您想要编写一个优化器
回调并将其传递给GPR。