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_likelihood、conditional 和 predict 方法。此 GP 实现可用于高效地对具有张量积核且在输入的完整网格上测量的正态分布数据进行回归:cartesian(*Xs)。MarginalKron 基于 KroneckerNormal 分布,更多信息请参见其文档字符串。有关 marginal_likelihood、conditional 和 predict 方法的更多信息,请参见它们的文档字符串。
- 参数:
- 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