将已知数据时刻整合到GPFlow拟合中

时间:2019-09-03 15:55:23

标签: python tensorflow gpflow

我最近一直在使用gpflow(特别是高斯过程回归)来建模一个过程,对于该过程,我可以访问每个输入的近似矩。我有一个大小为(N,1)的输入值X的向量和大小为(N,1)的响应Y的向量。但是,我也知道,对于每个(x,y)对,特定y值的相关方差,偏度,峰度等的近似值。

据此,我知道一些属性,这些属性使我知道要用于每个数据点的适当可能性。 在最简单的情况下,我仅假设所有可能性均为高斯,并指定每个点的方差。通过改写https://nbviewer.jupyter.org/github/GPflow/GPflow/blob/develop/doc/source/notebooks/advanced/varying_noise.ipynb#Demo-2:-grouped-noise-variances上的教程,我创建了一个最小的代码示例。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/05_dashboard-rbac.yaml

以上代码适用于高斯似然和已知方差。检查我的真实数据,我发现它经常偏斜,因此,我想使用非高斯似然来对其建模,但是在我所知道的情况下,我不确定如何指定这些其他似然参数。

所以我的问题是:有了这种设置,到目前为止,我该如何调整我的代码以包括非高斯似然,尤其要根据我的已知方差,偏度,峰度等来指定和固定其参数。与每个单独的y值相关?

1 个答案:

答案 0 :(得分:0)

首先,您需要选择使用哪种非高斯似然。 GPflow在likelihoods.py中包含各种内容。然后,您需要调整线条

likelihood = gpflow.likelihoods.SwitchedLikelihood(
    [gpflow.likelihoods.Gaussian(variance=NoiseVar[i]) for i in range(Y.shape[0])]
)

列出您的非高斯可能性。

哪种可能性可以利用您的偏度,峰度信息是一个统计问题。根据您的想法,您可能需要实现自己的似然类,可以通过从Likelihood继承来实现。您应该可以遵循likelihoods.py中的其他示例。