使用空 X 和 Y 初始化 GPFlow 模型

Initialize GPFlow model with empty X and Y

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

感谢您的帮助!

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

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'

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

可以 处理空的 XY 集 - 但您必须遵守所需的形状。 XY 都需要有 ndim=2。当写 x_sample = np.array([]) 时,然后 x_sample.shape == (0,)x_sample.ndim == 1。相反,设置 x_sample = np.empty((0, 2))(同样 y_sample = np.empty((0, 2)),然后 ndim=2 并且它们的形状根据需要设置为 (0, 2)

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