class pymc.gp.HSGP(m, L=None, c=None, drop_first=False, parameterization='noncentered', *, mean_func=<pymc.gp.mean.Zero object>, cov_func)
変数
型
m
list
各有効次元への基底ベクトル数
L
list
各active_dimへの空間の周辺
c
浮動小数点
proportion拡張因子
drop_first
真偽値
モデルにインターセプトがあれば、最初の基底ベクトルを無視することでサンプリングが改善する。
cov_func
共分散関数。デフォルト値 0
mean_func
平均の関数。デフォルト値0
(使用例)
# A three dimensional column vector of inputs.
X = np.random.rand(100, 3)
with pm.Model() as model:
# Specify the covariance function.
# Three input dimensions, but we only want to use the last two.
cov_func = pm.gp.cov.ExpQuad(3, ls=0.1, active_dims=[1, 2])
# Specify the HSGP.
# Use 25 basis vectors across each active dimension for a total of 25 * 25 = 625.
# The value `c = 4` means the boundary of the approximation
# lies at four times the half width of the data.
# In this example the data lie between zero and one,
# so the boundaries occur at -1.5 and 2.5. The data, both for
# training and prediction should reside well within that boundary..
gp = pm.gp.HSGP(m=[25, 25], c=4.0, cov_func=cov_func)
# Place a GP prior over the function f.
f = gp.prior("f", X=X)
...
# After fitting or sampling, specify the distribution
# at new points with .conditional
Xnew = np.linspace(-1, 2, 50)[:, None]
with model:
fcond = gp.conditional("fcond", Xnew=Xnew)
メソッド
型
HSGP.__init__(m[,L,c,drop_first,...])
各有効次元への基底ベクトル数
HSGP.conditional
新しい入力位置Xnew で見積られた 条件分布を返す。
HSGP.marginal_likelihood(name,X,*args)
HSGP.predict(Xnew[, point, given, diag, model])
HSGP.prior(name,X[,dims])
入力位置Xで見積られた GP事前分布を返す。
HSGP.prior_linearizaed
HSGPの線型バージョン
pymc.gp.Latent
潜在ガウス過程
class pymc.gp.Latent(*, mean_func=<pymc.gp.mean.Zero object>, cov_func=<pymc.gp.cov.Constant object>)
変数
型
mean_func
平均の関数。デフォルト値0
cov_func
2D array_like
共分散関数。デフォルト値 0
(使用例)
# A one dimensional column vector of inputs.
X = np.linspace(0, 1, 10)[:, None]
with pm.Model() as model:
# Specify the covariance function.
cov_func = pm.gp.cov.ExpQuad(1, ls=0.1)
# Specify the GP. The default mean function is `Zero`.
gp = pm.gp.Latent(cov_func=cov_func)
# Place a GP prior over the function f.
f = gp.prior("f", X=X)
...
# After fitting or sampling, specify the distribution
# at new points with .conditional
Xnew = np.linspace(-1, 2, 50)[:, None]
with model:
fcond = gp.conditional("fcond", Xnew=Xnew)
メソッド
型
Latent.__init__(m[,L,c,drop_first,...])
各有効次元への基底ベクトル数
Latent.conditional
新しい入力位置Xnew で見積られた 条件分布を返す。
Latent.marginal_likelihood(name,X,*args)
Latent.predict(Xnew[, point, given, diag, model])
Latent.prior(name,X[,dims])
入力位置Xで見積られた GP事前分布を返す。
pymc.gp.LatentKron
共分散がテンソル積カーネルの潜在ガウス過程
class pymc.gp.LatentKron(*, mean_func=<pymc.gp.mean.Zero object>, cov_funcs=<pymc.gp.cov.Constant object>)
変数
型
mean_func
平均の関数。
cov_func
2D array_like
テンソル(クロネッカー)積からなる共分散関数。
(使用例)
# One dimensional column vectors of inputs
X1 = np.linspace(0, 1, 10)[:, None]
X2 = np.linspace(0, 2, 5)[:, None]
Xs = [X1, X2]
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.LatentKron(cov_funcs=[cov_func1, cov_func2])
# ...
# 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)
メソッド
型
Latent.__init__(*[,mean_func,cov_funcs])
各有効次元への基底ベクトル数
Latent.conditional(name,Xnew[,jitter])
新しい入力位置Xnew で見積られた 条件分布を返す。
Latent.marginal_likelihood(name,X,...)
Latent.predict(Xnew[, point, given, ...])
Latent.prior(name,X[,jitter])
入力位置Xで見積られた GP事前分布を返す。
pymc.gp.Marginal
周辺ガウス過程
class pymc.gp.Marginal(*, mean_func=<pymc.gp.mean.Zero object>, cov_func=<pymc.gp.cov.Constant object>)
変数
型
mean_func
平均の関数。
cov_func
2D array_like
テンソル(クロネッカー)積からなる共分散関数。
(使用例)
# A one dimensional column vector of inputs.
X = np.linspace(0, 1, 10)[:, None]
with pm.Model() as model:
# Specify the covariance function.
cov_func = pm.gp.cov.ExpQuad(1, ls=0.1)
# Specify the GP. The default mean function is `Zero`.
gp = pm.gp.Marginal(cov_func=cov_func)
# Place a GP prior over the function f.
sigma = pm.HalfCauchy("sigma", beta=3)
y_ = gp.marginal_likelihood("y", X=X, y=y, sigma=sigma)
...
# After fitting or sampling, specify the distribution
# at new points with .conditional
Xnew = np.linspace(-1, 2, 50)[:, None]
with model:
fcond = gp.conditional("fcond", Xnew=Xnew)
メソッド
型
Latent.__init__(*[,mean_func,cov_funcs])
各有効次元への基底ベクトル数
Latent.conditional(name,Xnew[,jitter])
新しい入力位置Xnew で見積られた 条件分布を返す。
Latent.marginal_likelihood(name,X,y[,..])
所与の入力位置Xとデータyによる周辺尤度分布を返す
Latent.predict(Xnew[, point, given, ...])
条件分布の平均ベクトルと共分散行列をnumpyの配列として返す。
Latent.prior(name,X[,jitter])
入力位置Xで見積られた GP事前分布を返す。
pymc.gp.MarginalKron
共分散がテンソル積カーネルの周辺ガウス過程
class pymc.gp.MarginalKron(*, mean_func=<pymc.gp.mean.Zero object>, cov_funcs=<pymc.gp.cov.Constant object>)
変数
型
mean_func
平均の関数。
cov_func
2D array_like
テンソル(クロネッカー)積からなる共分散関数。
(使用例)
# 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)
メソッド
型
Latent.__init__(*[,mean_func,cov_funcs])
各有効次元への基底ベクトル数
Latent.conditional(name,Xnew[,...])
新しい入力位置Xnew で見積られた 条件分布を返す。
Latent.marginal_likelihood(name,Xs,...)
所与の入力位置Xsとデータyによる周辺尤度分布を返す
Latent.predict(Xnew[, point, diag, ...])
条件分布の平均ベクトルと共分散行列をnumpyの配列として返す。
Latent.prior(name,X,*args,**kwargs)
入力位置Xで見積られた GP事前分布を返す。
pymc.MarginalApprox
近似周辺ガウス過程
class pymc.gp.MarginalApprox(approx='VFE', *, mean_func=<pymc.gp.mean.Zero object>, cov_func=<pymc.gp.cov.Constant object>)
変数
型
mean_func
平均の関数。
cov_func
2D array_like
テンソル(クロネッカー)積からなる共分散関数。
approx
str
使用する近似。(DTC, FITC, VFE)
(使用例)
# A one dimensional column vector of inputs.
X = np.linspace(0, 1, 10)[:, None]
# A smaller set of inducing inputs
Xu = np.linspace(0, 1, 5)[:, None]
with pm.Model() as model:
# Specify the covariance function.
cov_func = pm.gp.cov.ExpQuad(1, ls=0.1)
# Specify the GP. The default mean function is `Zero`.
gp = pm.gp.MarginalApprox(cov_func=cov_func, approx="FITC")
# Place a GP prior over the function f.
sigma = pm.HalfCauchy("sigma", beta=3)
y_ = gp.marginal_likelihood("y", X=X, Xu=Xu, y=y, sigma=sigma)
...
# After fitting or sampling, specify the distribution
# at new points with .conditional
Xnew = np.linspace(-1, 2, 50)[:, None]
with model:
fcond = gp.conditional("fcond", Xnew=Xnew)