我正在使用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