0

我想知道在 GPy 中使用 GPCoregionalizedRegression 模型时获得 log_predictive_density 的正确方法是什么?

我尝试了以下方法,都导致抛出相同的错误 AttributeError: 'MixedNoise' object has no attribute 'gp_link'

样品 1:

lcm = GPy.util.multioutput.LCM(input_dim=28,num_outputs=2,kernels_list=[k1,k2])
m = GPy.models.GPCoregionalizedRegression([x_train, x_train], [y1_train, y2_train], kernel=lcm)
m.optimize(messages=False)
m.log_predictive_density(newX, newY)

样本 2:

lcm = GPy.util.multioutput.LCM(input_dim=28,num_outputs=2,kernels_list=[k1,k2])
m = GPy.models.GPCoregionalizedRegression([x_train, x_train], [y1_train, y2_train], kernel=lcm)
m.optimize(messages=False)
noise_dict = {'output_index':newX[:,-1].astype(int)}
m.log_predictive_density(newX, newY, Y_metadata=noise_dict)

在这两种情况下,“newX”都是维度为 (1, 28+1) 的行向量,其中附加列是 0 或 1,具体取决于我要使用的输出索引。

我已经确认示例 1 在使用 GPRegression 模型时工作正常,并且noise_dict在示例 2 中也为mean, var = m.predict(newX, Y_metadata=noise_dict). 我是否特别错过了对 log_predictive_density 函数的一些调整?

谢谢你的时间!

4

0 回答 0