python-为什么GaussianProcessRegressor通过机器产生不同的结果?
发布时间:2022-06-09 01:45:19 237
相关标签: # node.js
我的gpr功能通过机器产生不同的结果,我想知道为什么。
具有sklearn.gaussian_process.GaussianProcessRegressor
我制作了自己的gpr功能。
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF, ConstantKernel
def my_gpr(x, y, sample, rbf, constant):
kernel = ConstantKernel(rbf) * RBF(constant)
gp = GaussianProcessRegressor(kernel=kernel, normalize_y=True, optimizer=None)
gp.fit(x, y)
return gp.predict(sample, return_std=False)
然后,我为实验制作了固定的x、y和样本值。
虽然我随机生成了x,y,但我确信在这两台机器上使用的值是相同的。(在一台计算机上生成值,并将其自身复制到另一台计算机)
import numpy as np
x = np.round(np.random.uniform(low=-100, high=100, size=(37,2)), 6)
y = np.round(np.random.uniform(low=-100, high=100, size=(37,2)), 6)
sample = np.round(np.random.uniform(low=-100, high=100, size=(926,2)), 6)
这是执行代码。
ret = my_gpr(x, y, sample, 30, 1)
print(list(map(lambda x: print('{:.50f}, {:.50f}'.format(x[0], x[1])), ret)))
我在两台具有相同版本的scikit-learn
,一个是Windows,一个是Linux。
他们的结果非常相似,但与小数点后10位有一些差异。
在一台机器上,每次运行都会得到相同的结果。
为什么会有这些差异?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报