pymc.gp.MarginalKron#

class pymc.gp.MarginalKron(*, mean_func=<pymc.gp.mean.Zero object>, cov_funcs=<pymc.gp.cov.Constant object>)[源代码]#

边缘高斯过程,其协方差是张量积核。

gp.MarginalKron 类是 Kronecker GP 先验与加性白噪声之和的实现。它具有 marginal_likelihoodconditionalpredict 方法。此 GP 实现可用于高效地对具有张量积核且在输入的完整网格上测量的正态分布数据进行回归:cartesian(*Xs)MarginalKron 基于 KroneckerNormal 分布,更多信息请参见其文档字符串。有关 marginal_likelihoodconditionalpredict 方法的更多信息,请参见它们的文档字符串。

参数:
mean_func均值,默认零

均值函数。

cov_funcspython:协方差列表,默认 [常数]

构成张量(Kronecker)积的协方差函数。

示例

# One dimensional column vectors of inputs
X1 = np.linspace(0, 1, 10)[:, None]
X2 = np.linspace(0, 2, 5)[:, None]
Xs = [X1, X2]
y = np.random.randn(len(X1)*len(X2))  # toy data
with pm.Model() as model:
    # Specify the covariance functions for each Xi
    cov_func1 = pm.gp.cov.ExpQuad(1, ls=0.1)  # Must accept X1 without error
    cov_func2 = pm.gp.cov.ExpQuad(1, ls=0.3)  # Must accept X2 without error

    # Specify the GP.  The default mean function is `Zero`.
    gp = pm.gp.MarginalKron(cov_funcs=[cov_func1, cov_func2])

    # Place a GP prior over the function f.
    sigma = pm.HalfCauchy("sigma", beta=3)
    y_ = gp.marginal_likelihood("y", Xs=Xs, y=y, sigma=sigma)

    # ...

# After fitting or sampling, specify the distribution
# at new points with .conditional
# Xnew need not be on a full grid
Xnew1 = np.linspace(-1, 2, 10)[:, None]
Xnew2 = np.linspace(0, 3, 10)[:, None]
Xnew = np.concatenate((Xnew1, Xnew2), axis=1)  # Not full grid, works
Xnew = pm.math.cartesian(Xnew1, Xnew2)  # Full grid, also works

with model:
    fcond = gp.conditional("fcond", Xnew=Xnew)

方法

MarginalKron.__init__(*[, mean_func, cov_funcs])

MarginalKron.conditional(name, Xnew[, ...])

返回在新输入位置 Xnew 上评估的条件分布,就像在 Marginal 中一样。

MarginalKron.marginal_likelihood(name, Xs, ...)

返回给定输入位置 cartesian(*Xs) 和数据 y 的边际似然分布。

MarginalKron.predict(Xnew[, point, diag, ...])

给定一个 ,例如 MAP 估计或来自 轨迹 的样本,返回条件分布的均值向量和协方差矩阵作为 numpy 数组。

MarginalKron.prior(name, X, *args, **kwargs)

属性

Xs

sigma

y