提问人:JHdiggity 提问时间:11/16/2023 最后编辑:JHdiggity 更新时间:11/16/2023 访问量:45
我是否可以使用 GaussianProcessRegressor 在一个维度中插值,从而保留其他 dim 之间的关系?
Can I use GaussianProcessRegressor to interpolate in one dimension which preserves relation among other dims?
问:
我是使用 scikit-learn 的新手,并且正在尝试实现 GaussianProcessRegressor 类。我有一个用于训练集的输入 1D 数组 X,但对于我的目标 y,我基本上有一个 3D 数组(a、b、c),其中 a 是我想使用 GPR 插值的维度,它与 X 的长度匹配。但是,我需要保留 b 和 c 之间的关系——它们不会值(即 GPR 是 1D)。
我已经解决了这个问题,使用类、写作和 scipy 知道在第一个轴上插值并将相同的转换应用于其他轴。我想看看对于我的特定数据集 y,GPR 是否比五元或三次样条更准确。make_interp_spline
scipy.interpolate
interp = 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))
答: 暂无答案
评论