Python 将已知数据矩合并到GPFlow拟合中
我最近一直在使用gpflow,特别是高斯过程回归,对一个过程进行建模,我可以获得每个输入的近似矩。我有一个大小为(N,1)的输入值X的向量和一个大小为(N,1)的响应Y的向量。然而,我也知道,对于每个(x,y)对,特定y值的相关方差、偏度、峰度等的近似值 由此,我了解了一些属性,它们告诉我每个数据点使用的适当可能性。 在最简单的情况下,我假设所有的似然度都是高斯的,并指定每个点的方差。我通过修改以下教程创建了一个代码的最小示例: 上述代码适用于高斯似然和已知方差。检查我的真实数据时,我发现它经常是倾斜的,因此,我想使用非高斯似然度对其进行建模,但鉴于我所知,我不确定如何指定这些其他似然参数Python 将已知数据矩合并到GPFlow拟合中,python,tensorflow,gpflow,Python,Tensorflow,Gpflow,我最近一直在使用gpflow,特别是高斯过程回归,对一个过程进行建模,我可以获得每个输入的近似矩。我有一个大小为(N,1)的输入值X的向量和一个大小为(N,1)的响应Y的向量。然而,我也知道,对于每个(x,y)对,特定y值的相关方差、偏度、峰度等的近似值 由此,我了解了一些属性,它们告诉我每个数据点使用的适当可能性。 在最简单的情况下,我假设所有的似然度都是高斯的,并指定每个点的方差。我通过修改以下教程创建了一个代码的最小示例: 上述代码适用于高斯似然和已知方差。检查我的真实数据时,我发现它经常
因此,我的问题是:鉴于这种设置,我如何调整我的代码,使其在每一步都包含非高斯似然度,特别是根据我已知的方差、偏度、峰度等与每个y值相关的参数来指定和固定这些参数?首先,您需要选择使用哪种非高斯似然。GPflow包括
likelihoods.py
中的各种流。然后你需要调整线路
likelihood = gpflow.likelihoods.SwitchedLikelihood(
[gpflow.likelihoods.Gaussian(variance=NoiseVar[i]) for i in range(Y.shape[0])]
)
列出你的非高斯概率
哪个可能性可以利用偏度和峰度信息是一个统计问题。根据您的想法,您可能需要实现自己的似然类,这可以通过继承似然
来实现。您应该能够遵循likelihoods.py
中的一些其他示例
likelihood = gpflow.likelihoods.SwitchedLikelihood(
[gpflow.likelihoods.Gaussian(variance=NoiseVar[i]) for i in range(Y.shape[0])]
)