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

时间:2019-03-29 16:24:45

标签: gpflow

我正在使用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'

如果有人知道我该怎么做才能用空集初始化模型,那将是很棒的事情

1 个答案:

答案 0 :(得分:2)

可以处理空的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)

(显然,没有数据对优化超参数没有意义,实际上,您无法对模型进行任何操作;如果您只想比较内核,则无需构建模型即可计算内核矩阵...但这取决于您要实现的目标!)