Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scikit学习高斯过程返回2个样本的常数方差_Python_Scikit Learn - Fatal编程技术网

Python Scikit学习高斯过程返回2个样本的常数方差

Python Scikit学习高斯过程返回2个样本的常数方差,python,scikit-learn,Python,Scikit Learn,我正在使用scikit learn的高斯过程(GP)工具进行贝叶斯优化。我注意到一个奇怪的趋势,它一直影响着我的结果。当我输入以下代码以将GP装配到一个数据点时 import numpy as np import sklearn.gaussian_process as gp #domain x = np.linspace(-3,3,10).reshape(-1,1) #create gaussian process kernel = gp.kernels.Matern() model = g

我正在使用scikit learn的高斯过程(GP)工具进行贝叶斯优化。我注意到一个奇怪的趋势,它一直影响着我的结果。当我输入以下代码以将GP装配到一个数据点时

import numpy as np
import sklearn.gaussian_process as gp

#domain
x = np.linspace(-3,3,10).reshape(-1,1)

#create gaussian process
kernel = gp.kernels.Matern()
model = gp.GaussianProcessRegressor(kernel=kernel,
                                    alpha=1e-5,
                                    n_restarts_optimizer=10,
                                    normalize_y=True)
#fit to first data point
model.fit(np.array([[0.72]]), np.array([[-0.665]]))
#precict mean, standard deviaion over domain
mu, std = model.predict(x, return_std=True)

print std
我得到了一个好看的标准偏差,在x=0.72的采样点附近减小:

[0.99992986 0.99949578 0.99661166 0.97932637 0.89018143 0.51921629 0.40500728 0.8588613 0.97270708 0.99544088]

但是,我随后为第二个数据点实现了相同的GP,如下所示:

#fit to first and second data point
model.fit(np.array([[0.72],[-2.99]]), np.array([[-0.665],[0.2168]]))
#precict mean, standard deviaion over domain
mu, std = model.predict(x, return_std=True)

print std
然后接收一个奇怪的向量,它在第一个点只低于1

[0.70285521.1.1.1.1.1.1.1。 1.1.1.]

这当然不可能是真的,因为我们对最初的观点仍有一些信心。当我加入第三个点时,标准偏差看起来又正常了,但是,第二个点中的这种奇怪现象导致了我的优化例程出现问题,我不明白为什么会发生这种情况