pyMC API ベイズ・確率プログラミング

pyMC API ガウス過程

ガウス過程

pymc.gp.HSGP

ヒルベルト空間ガウス過程

class pymc.gp.HSGP(m, L=None, c=None, drop_first=False, parameterization='noncentered', *, mean_func=<pymc.gp.mean.Zero object>, cov_func)
変数
mlist各有効次元への基底ベクトル数
Llist各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_linearizaedHSGPの線型バージョン

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_func2D 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_func2D 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_func2D 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_func2D 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_func2D array_likeテンソル(クロネッカー)積からなる共分散関数。
approxstr使用する近似。(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)

メソッド
MarginalApprox.__init__(*[,mean_func,cov_funcs])各有効次元への基底ベクトル数
MarginalApprox.conditional(name,Xnew[,...])新しい入力位置Xnew で見積られた 条件分布を返す。
MarginalApprox.marginal_likelihood(name,Xs,...)所与の入力位置X,誘発点Xuとデータy、ホワイトノイズ標準偏差sigmaによる近似周辺尤度分布を返す
MarginalApprox.predict(Xnew[, point, diag, ...])条件分布の平均ベクトルと共分散行列をnumpyの配列として返す。
MarginalApprox.prior(name,X,*args,**kwargs)入力位置Xで見積られた GP事前分布を返す。
属性
X
Xu
Sigma
y

pymc.gp.TP

ステューデントのT過程

class pymc.gp.TP(*, mean_func=<pymc.gp.mean.Zero object>, scale_func=<pymc.gp.cov.Constant object>, cov_func=None, nu=None)
変数
mean_func平均の関数。
scale_func2D array_like共分散関数
cov_func2D array_like未使用、前のバージョンで使用。代わりにscale_funcを使用する。
nu浮動小数点自由度
メソッド
TP.__init__(*[,mean_func,cov_funcs])
TP.conditional(name,Xnew[,...])新しい入力位置Xnew で見積られた 条件分布を返す。
TP.marginal_likelihood(name,Xs,*args,**kwargs)
TP.predict(Xnew[, point, given,diag,model])
TP.prior(name,X[,reparameterize,jitter])入力位置Xで見積られた GP事前分布を返す。

平均関数

pymc.gp.mean.Zero

ガウス過程のゼロ平均関数

メソッド
TP.__init__(*args,**kwargs)

pymc.gp.mean.Constant

一定の平均関数

class pymc.gp.mean.Constant(c=0)
変数
c一定の平均値
メソッド
Constant.__init__([c])

pymc.gp.mean.Linear

ガウス過程の線型平均関数

変数
coeffs線型係数
intercept線形関数の切片
メソッド
Linear.__init__(coeffs[,intercept])

共分散関数

pymc.gp.cov.Constant

定数値共分散関数

メソッド
Constant.__init__(c)
Constant.diag(X)
Constant/full(X[,Xs])

pymc.gp.cov.WhiteNoise

ホワイトノイズ共分散関数

メソッド
WhiteNoise.__init__(c)
WhiteNoise.diag(X)
WhiteNoise.full(X[,Xs])

pymc.gp.cov.ExpQuad

指数二次カーネル

メソッド
ExpQuad.__init__(c)
ExpQuad.diag(X)
ExpQuad.euclidean_dist(X,Xs)
ExpQuad.full(X[,Xs])
ExpQuad.power_spectral_density(omega)ExpQuadカーネルへのパワースペクトル密度
ExpQuad.square_dist(X,Xs)

pymc.gp.cov.RatQuad

Rational Quadraticカーネル

class pymc.gp.cov.RatQuad(input_dim, alpha, ls=None, ls_inv=None, active_dims=None)
メソッド
RatQuad.__init__(input_dim, alpha[, ls, ...])
RatQuad.diag(X)
RatQuad.euclidean_dist(X,Xs)
RatQuad.full(X[,Xs])
RatQuad.power_spectral_density(omega)
RatQuad.square_dist(X,Xs)

pymc.gp.cov.Exponential

指数カーネル

class pymc.gp.cov.Exponential(input_dim, ls=None, ls_inv=None, active_dims=None)

メソッド
Exponential.__init__(input_dim[, ls, ...])
Exponential.diag(X)
Exponential.euclidean_dist(X,Xs)
Exponential.full(X[,Xs])
Exponential.power_spectral_density(omega)
Exponential.square_dist(X,Xs)

pymc.gp.cov.Matern52

Matern カーネル nu=5/2

class pymc.gp.cov.Matern52(input_dim, ls=None, ls_inv=None, active_dims=None)
メソッド
Matern52.__init__(input_dim[, ls, ...])
Matern52.diag(X)
Matern52.euclidean_dist(X,Xs)
Matern52.full(X[,Xs])
Matern52.power_spectral_density(omega)Matern52カーネルのパワースペクトル密度
Matern52.square_dist(X,Xs)

pymc.gp.cov.Matern32

Matern カーネル nu=3/2

class pymc.gp.cov.Matern32(input_dim, ls=None, ls_inv=None, active_dims=None)
メソッド
Matern32.__init__(input_dim[, ls, ls_inv,...])
Matern32.diag(X)
Matern32.euclidean_dist(X,Xs)
Matern32.full(X[,Xs])
Matern32.power_spectral_density(omega)Matern52カーネルのパワースペクトル密度
Matern32.square_dist(X,Xs)

pymc.gp.cov.Linear

線形カーネル

class pymc.gp.cov.Linear(input_dim, c, active_dims=None)
メソッド
Linear.__init__(input_dim[, ls, ...])
Linear.diag(X)
Linear.full(X[,Xs])
属性
n_dims入力の次元

pymc.gp.cov.Polynomial

多項カーネル

class pymc.gp.cov.Polynomial(input_dim, c, d, offset, active_dims=None)
メソッド
Polynomial.__init__(input_dim[,c,d,offset, ...])
Polynomial.diag(X)
Polynomial.full(X[,Xs])
属性
n_dims入力の次元

pymc.gp.cov.Cosine

コサインカーネル

class pymc.gp.cov.Cosine(input_dim, ls=None, ls_inv=None, active_dims=None)
メソッド
Cosine.__init__(input_dim[, ls, ls_inv,...])
Cosine.diag(X)
Cosine.euclidean_dist(X,Xs)
Cosine.full(X[,Xs])
Cosine.power_spectral_density(omega)
Cosine.square_dist(X,Xs)

pymc.gp.cov.Periodic

周期カーネル

class pymc.gp.cov.Periodic(input_dim, period, ls=None, ls_inv=None, active_dims=None)

メソッド
Periodic.__init__(input_dim,period[, ls,...])
Periodic.diag(X)
Periodic.euclidean_dist(X,Xs)
Periodic.full(X[,Xs])
Periodic.power_spectral_density(omega)
Periodic.square_dist(X,Xs)

pymc.gp.cov.Warpedinput

PyTensorで定義された任意の関数を使っている任意のカーネルの入力をワープする。

class pymc.gp.cov.WarpedInput(input_dim, cov_func, warp_func, args=None, active_dims=None)
変数
cov_func共分散
warp_funcPyTensor関数、追加の引数
argsWarp_funcに渡す追加入力
メソッド
WarpedInput.__init__(input_dim,cov_func, ...)
WarpedInput.diag(X)
WarpedInput.full(X[,Xs])
属性
n_dims入力の次元

pymc.gp.cov.Gibbs

ギッブスカーネル

class pymc.gp.cov.Gibbs(input_dim, lengthscale_func, args=None, active_dims=None)
変数
lengthscale_funcXと追加の引数のPyTensor関数
argslengthscale_funcへの追加入力
メソッド
Gibbs.__init__(input_dim,cov_func, ...)
Gibbs.diag(X)
Gibbs.full(X[,Xs])
Gibbs.square_dist(X[,Xs])

pymc.gp.cov.Coregion

本質的に線形の共局所化モデルの共分散関数

class pymc.gp.cov.Coregion(input_dim, W=None, kappa=None, B=None, active_dims=None)
変数
W2D 配列異なる出力間で相関を決定する低ランク行列
kappa1D 配列独立して振る舞う出力を許容するベクトル
B2D 配列合計行列。
W,Kappaのどちらか一方とBが与えられなければならない。
メソッド
Coregion.__init__(input_dim[,W,kappa,B, ...])
Coregion.diag(X)
Coregion.full(X[,Xs])
属性
n_dims入力の次元

pymc.gp.cov.ScaledCov

PyTensorを使って定義されたスケーリング関数で基底カーネルを乗算してカーネルを作る

class pymc.gp.cov.ScaledCov(input_dim, cov_func, scaling_func, args=None, active_dims=None)
変数
cov_func基底カーネルまたは共分散
scaling_func1D 配列XのPyTensor関数とオプションの追加引数
argsスカラーのtuple,listlength_scale関数への追加入力
W,Kappaのどちらか一方とBが与えられなければならない。
メソッド
ScaledCov.__init__(input_dim,cov_func, ...)
ScaledCov.diag(X)
ScaledCov.full(X[,Xs])
属性
n_dims入力の次元

pymc.gp.cov.Kron

共分散オブジェクトの形式 他の共分散のクロネッカー積

class pymc.gp.cov.Kron(factor_list)
メソッド
Kron.__init__(factor_list)
Kron.diag(X)
Kron.full(X[,Xs])
属性
n_dims入力の次元

-pyMC API, ベイズ・確率プログラミング
-, , , , , , , , , ,