1

我正在使用 GPFlow 进行多维回归,并希望比较从空 X 和 Y 集开始的各种内核。但似乎该库需要包含值对的集合。我考虑过用远离输入空间的点进行初始化,但在优化我的超参数时会包含该点。有什么我缺少的解决方案或解决方法吗?

谢谢你的帮助!

这是初始化我的模型的一些标准代码:

import gpflow
k = gpflow.kernels.RBF(input_dim=1, lengthscales=1, variance=1)
x_sample = np.array([])
y_sample = np.array([])
model = gpflow.models.GPR(x_sample, y_sample, kern=k)

这导致以下错误:

IndexError: tuple index out of range

以下代码段导致:

model = gpflow.models.GPR(kern=k)
TypeError: __init__() missing 2 required positional arguments: 'X' and 'Y'

如果有人知道我可以做些什么来用空集初始化我的模型,那就太好了

4

1 回答 1

2

该库可以处理空XY集合 - 但您必须尊重所需的形状。两者XY需要ndim=2。写的时候x_sample = np.array([]),然后x_sample.shape == (0,)x_sample.ndim == 1。取而代之的是, set x_sample = np.empty((0, 2))(和同样y_sample = np.empty((0, 2))的 , thenndim=2和它们的形状是(0, 2)根据需要的。

(显然没有数据,优化你的超参数是没有意义的,而且你不能对模型做任何事情,真的;如果你只想比较内核,你不需要构建一个模型来计算内核矩阵...但这更具体地取决于您想要实现的目标!)

于 2019-03-29T16:50:44.710 回答