Package for nodes used to construct the model.

Stochastic nodes

Nodes for Gaussian variables:

Gaussian(mu, Lambda, \*\*kwargs) Node for Gaussian variables.
GaussianARD(mu, alpha[, ndim, shape]) Node for Gaussian variables with ARD prior.

Nodes for precision and scale variables:

Gamma(a, b, \*\*kwargs) Node for gamma random variables.
Wishart(n, V, \*\*kwargs) Node for Wishart random variables.
Exponential(l, \*\*kwargs) Node for exponential random variables.

Nodes for modelling Gaussian and precision variables jointly (useful as prior for Gaussian nodes):

GaussianGamma(\*args, \*\*kwargs) Node for Gaussian-gamma (isotropic) random variables.
GaussianWishart(\*args, \*\*kwargs) Node for Gaussian-Wishart random variables.

Nodes for discrete count variables:

Bernoulli(p, \*\*kwargs) Node for Bernoulli random variables.
Binomial(n, p, \*\*kwargs) Node for binomial random variables.
Categorical(p, \*\*kwargs) Node for categorical random variables.
Multinomial(n, p, \*\*kwargs) Node for multinomial random variables.
Poisson(l, \*\*kwargs) Node for Poisson random variables.

Nodes for probabilities:

Beta(alpha, \*\*kwargs) Node for beta random variables.
Dirichlet(\*args, \*\*kwargs) Node for Dirichlet random variables.

Nodes for dynamic variables:

CategoricalMarkovChain(pi, A[, states]) Node for categorical Markov chain random variables.
GaussianMarkovChain(mu, Lambda, A, nu[, n, ...]) Node for Gaussian Markov chain random variables.
SwitchingGaussianMarkovChain(mu, Lambda, B, ...) Node for Gaussian Markov chain random variables with switching dynamics.
VaryingGaussianMarkovChain(mu, Lambda, B, S, nu) Node for Gaussian Markov chain random variables with time-varying dynamics.

Other stochastic nodes:

Mixture(z, node_class, \*params[, cluster_plate]) Node for exponential family mixture variables.

Point-estimation nodes:

MaximumLikelihood(array[, regularization])
Concentration(D[, regularization])
GammaShape(\*\*kwargs) ML point estimator for the shape parameter of the gamma distribution

Deterministic nodes

Dot(\*args, \*\*kwargs) Node for computing inner product of several Gaussian vectors.
SumMultiply(\*args[, iterator_axis]) Node for computing general products and sums of Gaussian nodes.
Add(\*nodes, \*\*kwargs) Node for computing sums of Gaussian nodes: X+Y+Z.
Gate(Z, X[, gated_plate, moments]) Deterministic gating of one node.
Take(node, indices[, plate_axis]) Choose elements/sub-arrays along a plate axis
Function(function, \*nodes_gradients[, shape])
ConcatGaussian(\*nodes, \*\*kwargs) Concatenate Gaussian vectors along the variable axis (not plate axis)
Choose(z, \*nodes) Choose plate elements from nodes based on a categorical variable.