我是否可以使用 GaussianProcessRegressor 在一个维度中插值,从而保留其他 dim 之间的关系?

Can I use GaussianProcessRegressor to interpolate in one dimension which preserves relation among other dims?

提问人:JHdiggity 提问时间:11/16/2023 最后编辑:JHdiggity 更新时间:11/16/2023 访问量:45

问:

我是使用 scikit-learn 的新手,并且正在尝试实现 GaussianProcessRegressor 类。我有一个用于训练集的输入 1D 数组 X,但对于我的目标 y,我基本上有一个 3D 数组(a、b、c),其中 a 是我想使用 GPR 插值的维度,它与 X 的长度匹配。但是,我需要保留 b 和 c 之间的关系——它们不会值(即 GPR 是 1D)。

我已经解决了这个问题,使用类、写作和 scipy 知道在第一个轴上插值并将相同的转换应用于其他轴。我想看看对于我的特定数据集 y,GPR 是否比五元或三次样条更准确。make_interp_splinescipy.interpolateinterp = make_interp_spline(X, y)

是否可以使用类来做这种事情?sklearn.gaussian_process

我已经尝试过,现在我已经将所有 b 和 c 推入了 y 的部分,但我不确定这是否符合我的意愿。下面是一些示例代码:gaussian_process.fit(X.reshape(-1, 1), y.reshape(len(X),-1))n_targets

import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern

X = np.linspace(1.5,4.5,13)
#y is an array of shape (13, 81, 6228), but collapse the last two dims
# to 81*6228 = 504468
y = np.arange(0,504468).reshape(13,-1)
kernel = 1. * Matern(length_scale=1., nu=2.5)
gaussian_process = GaussianProcessRegressor(kernel=kernel,         n_restarts_optimizer=10)
gaussian_process.fit(X.reshape(-1, 1), y)
gaussian_process.predict(np.array([3.0]).reshape(1,-1))

蟒蛇 scikit-learn

评论

0赞 JustLearning 11/16/2023
“我有”。“我已经解决了”。“我已经试过了”。向我们展示一些代码,以帮助完成您目前所做的工作!

答: 暂无答案