问题描述
我想在GPy中执行共区域回归,但是我使用了伯努利似然法,然后估计作为高斯,我使用拉普拉斯推断。下面的代码显示了我通常如何使用此设置(使用我的自定义PjkRbf
内核)运行单输出GP:
likelihood = GPy.likelihoods.Bernoulli()
laplace_inf = GPy.inference.latent_function_inference.Laplace()
kernel = GPy.kern.PjkRbf(X.shape[1])
m = GPy.core.GP(X,Y,kernel=kernel,likelihood=likelihood,inference_method=laplace_inf)
现在,我正在尝试运行相同的设置,但是作为多输出。这是我无法做到的。
我尝试将GPCoregionalizedRegression
类与ICM内核一起使用,如以下代码所示:
likelihood1 = GPy.likelihoods.Bernoulli()
likelihood2 = GPy.likelihoods.Bernoulli()
laplace_inf = GPy.inference.latent_function_inference.Laplace()
K = GPy.kern.PjkRbf(X.shape[1])
icm = GPy.util.multIoUtput.ICM(input_dim=2,num_outputs=2,kernel=K)
m = GPy.models.GPCoregionalizedRegression([X,X],[Y1,Y2],kernel=icm,likelihoods_list=[likelihood1,likelihood2])
运行此代码将引发AssertionError,具有很长的堆栈跟踪,但是最后一部分显示了以下内容。可能性不能断言为高斯。
~\Anaconda3\lib\site-packages\GPy\likelihoods\mixed_noise.py in gaussian_variance(self,Y_Metadata)
22
23 def gaussian_variance(self,Y_Metadata):
---> 24 assert all([isinstance(l,Gaussian) for l in self.likelihoods_list])
25 ind = Y_Metadata['output_index'].flatten()
26 variance = np.zeros(ind.size)
AssertionError:
这是因为我无法将拉普拉斯推断传递给GPCoregionalizedRegression
模型。
任何人都可以提供有关如何解决此问题的建议,或者是否存在可以使用伯努利似然法和拉普拉斯推断方法进行多输出回归的模型?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)