我正在使用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'
如果有人知道我该怎么做才能用空集初始化模型,那将是很棒的事情
答案 0 :(得分:2)
库 可以处理空的X
和Y
集-但您必须遵守所需的形状。 X
和Y
都必须具有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)
。
(显然,没有数据对优化超参数没有意义,实际上,您无法对模型进行任何操作;如果您只想比较内核,则无需构建模型即可计算内核矩阵...但这取决于您要实现的目标!)