queens.distributions package#
Distributions.
Modules for probability distributions.
Submodules#
queens.distributions.bernoulli module#
Bernoulli distribution.
- class BernoulliDistribution(success_probability)[source]#
Bases:
ParticleDiscreteDistribution
Bernoulli distribution.
queens.distributions.beta module#
Beta Distribution.
- class BetaDistribution(lower_bound, upper_bound, a, b)[source]#
Bases:
ContinuousDistribution
Beta distribution.
A generalized one-dimensional beta distribution based on scipy stats. The generalized beta distribution has a lower bound and an upper bound. The parameters a and b determine the shape of the distribution within these bounds.
- lower_bound#
Lower bound of the beta distribution.
- Type:
np.ndarray
- upper_bound#
Upper bound of the beta distribution.
- Type:
np.ndarray
- a#
Shape parameter of the beta distribution, must be greater than 0.
- Type:
float
- b#
Shape parameter of the beta distribution, must be greater than 0.
- Type:
float
- scipy_beta#
Scipy beta distribution object.
- Type:
scipy.stats.beta
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
cdf (np.ndarray) – CDF at evaluated positions
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
samples (np.ndarray) – drawn samples from the distribution
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- Returns:
logpdf (np.ndarray) – log pdf at evaluated positions
queens.distributions.categorical module#
General categorical distribution.
Disclaimer: Most of our iterators are not able to handle categorical distributions.
- class CategoricalDistribution(probabilities, categories)[source]#
Bases:
Distribution
General categorical distribution.
- probabilities#
Probabilities associated with the categories
- Type:
np.ndarray
- categories#
Categories
- Type:
np.ndarray
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
np.ndarray – Samples of the categorical distribution
queens.distributions.distributions module#
Distributions.
- class ContinuousDistribution(mean, covariance, dimension)[source]#
Bases:
Distribution
Base class for continuous probability distributions.
- mean#
Mean of the distribution.
- Type:
np.ndarray
- covariance#
Covariance of the distribution.
- Type:
np.ndarray
- dimension#
Dimensionality of the distribution.
- Type:
int
- abstract cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- static check_bounds(lower_bound, upper_bound)[source]#
Check sanity of bounds.
- Parameters:
lower_bound (np.ndarray) – Lower bound(s) of distribution
upper_bound (np.ndarray) – Upper bound(s) of distribution
- abstract draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- abstract grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- abstract logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- class DiscreteDistribution(probabilities, sample_space, dimension=None)[source]#
Bases:
Distribution
Discrete distribution base class.
- mean#
Mean of the distribution.
- Type:
np.ndarray
- covariance#
Covariance of the distribution.
- Type:
np.ndarray
- dimension#
Dimensionality of the distribution.
- Type:
int
- probabilities#
Probabilities associated to all the events in the sample space
- Type:
np.ndarray
- sample_space#
Samples, i.e. possible outcomes of sampling the distribution
- Type:
np.ndarray
- abstract cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- static check_duplicates_in_sample_space(sample_space)[source]#
Check for duplicate events in the sample space.
- Parameters:
sample_space (np.ndarray) – Samples, i.e. possible outcomes of sampling the distribution
- abstract draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- abstract logpdf(x)[source]#
Log of the probability mass function.
In order to keep the interfaces unified the PMF is also accessed via the pdf.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- class Distribution[source]#
Bases:
ABC
Base class for probability distributions.
- static check_positivity(**parameters)[source]#
Check if parameters are positive.
- Parameters:
parameters (dict) – Checked parameters
- abstract draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- export_dict()[source]#
Create a dict of the distribution.
- Returns:
export_dict (dict) – Dict containing distribution information
queens.distributions.exponential module#
Exponential distribution.
- class ExponentialDistribution(rate)[source]#
Bases:
ContinuousDistribution
Exponential distribution class.
For a multivariate distribution the components are assumed to be independent.
- rate#
Rate parameter(s) of the distribution.
- Type:
np.ndarray
- scale#
Scale parameters(s) of the distribution (\(scale = \frac{1}{rate}\)) .
- Type:
np.ndarray
- pdf_const#
Constant for the evaluation of the pdf.
- Type:
float
- logpdf_const#
Constant for the evaluation of the log pdf.
- Type:
float
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
cdf (np.ndarray) – cdf at evaluated positions
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
samples (np.ndarray) – Drawn samples from the distribution
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- Returns:
grad_logpdf (np.ndarray) – Gradient of the log pdf evaluated at positions
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- Returns:
logpdf (np.ndarray) – log pdf at evaluated positions
queens.distributions.free module#
Free Variable.
- class FreeVariable(dimension)[source]#
Bases:
ContinuousDistribution
Free variable class.
This is not a proper distribution class. It is used for variables with no underlying distribution.
queens.distributions.lognormal module#
LogNormal Distribution.
- class LogNormalDistribution(normal_mean, normal_covariance)[source]#
Bases:
ContinuousDistribution
LogNormal distribution.
Support in (0, +inf).
- normal_distribution#
Underlying normal distribution.
- Type:
- normal_distribution#
underlying normal distribution
- Type:
obj
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
cdf (np.ndarray) – cdf at evaluated positions
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
samples (np.ndarray) – Drawn samples from the distribution
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- Returns:
grad_logpdf (np.ndarray) – Gradient of the log pdf evaluated at positions
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- Returns:
logpdf (np.ndarray) – pdf at evaluated positions
queens.distributions.mean_field_normal module#
Mean-field normal distribution.
- class MeanFieldNormalDistribution(mean, variance, dimension)[source]#
Bases:
ContinuousDistribution
Mean-field normal distribution.
- standard_deviation#
standard deviation vector
- Type:
np.ndarray
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
cdf (np.ndarray) – cdf at evaluated positions
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
samples (np.ndarray) – Drawn samples from the distribution
- static get_check_array_dimension_and_reshape(input_array, dimension)[source]#
Check dimensions and potentially reshape array.
- Parameters:
input_array (np.ndarray) – Input array
dimension (int) – Dimension of the array
- Returns:
input_array (np.ndarray) – Input array with correct dimension
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- Returns:
grad_logpdf (np.ndarray) – Gradient of the log pdf evaluated at positions
- grad_logpdf_var(x)[source]#
Gradient of the log pdf with respect to the variance vector.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- Returns:
grad_logpdf_var (np.ndarray) – Gradient of the log pdf w.r.t. the variance at given variance vector and position x
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- Returns:
logpdf (np.ndarray) – log pdf at evaluated positions
- pdf(x)[source]#
Probability density function.
- Parameters:
x (np.ndarray) – Positions at which the pdf is evaluated
- Returns:
pdf (np.ndarray) – pdf at evaluated positions
- ppf(quantiles)[source]#
Percent point function (inverse of cdf — quantiles).
- Parameters:
quantiles (np.ndarray) – Quantiles at which the ppf is evaluated
queens.distributions.mixture module#
Mixture distribution.
- class MixtureDistribution(weights, component_distributions)[source]#
Bases:
ContinuousDistribution
Mixture models.
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
np.ndarray – CDF of the mixture model
- draw(num_draws=1)[source]#
Draw num_draw samples from the variational distribution.
- Uses a two step process:
From a multinomial distribution, based on the weights, select a component
Sample from the selected component
- Parameters:
num_draws (int) – Number of samples to draw
- Returns:
samples (np.ndarray) – Row wise samples of the variational distribution
- export_dict()[source]#
Create a dict of the distribution.
- Returns:
export_dict (dict) – Dict containing distribution information
- classmethod from_config_create_distribution(distribution_options)[source]#
Create mixture model from config.
- Parameters:
distribution_options (dict) – description of the distribution
- Returns:
MixtureDistribution – mixture model
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- pdf(x)[source]#
Probability density function.
- Parameters:
x (np.ndarray) – Positions at which the pdf is evaluated
- ppf(_)[source]#
Percent point function (inverse of cdf — quantiles).
- Parameters:
q (np.ndarray) – Quantiles at which the ppf is evaluated
- responsibilities(x)[source]#
Compute the responsibilities.
The responsibilities are defined as [1]:
- Math:
gamma_j(x)=frac{w_j p_j(x)}{sum_{i=0}^{n_{components}-1}w_i p_i(x)}
[1]: Bishop, C. M. (2006). Pattern recognition and machine learning. Springer.
- Parameters:
x (np.ndarray) – Positions at which the responsibilities are evaluated
- Returns:
np.ndarray – responsibilities (number of samples x number of component)
queens.distributions.multinomial module#
Multinomial distribution.
- class MultinomialDistribution(n_trials, probabilities)[source]#
Bases:
DiscreteDistribution
Multinomial distribution.
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- logpdf(x)[source]#
Log of the probability mass function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
queens.distributions.normal module#
Normal distribution.
- class NormalDistribution(mean, covariance)[source]#
Bases:
ContinuousDistribution
Normal distribution.
- low_chol#
Lower-triangular Cholesky factor of covariance matrix.
- Type:
np.ndarray
- precision#
Precision matrix corresponding to covariance matrix.
- Type:
np.ndarray
- logpdf_const#
Constant for evaluation of log pdf.
- Type:
float
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
cdf (np.ndarray) – cdf at evaluated positions
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
samples (np.ndarray) – Drawn samples from the distribution
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- Returns:
grad_logpdf (np.ndarray) – Gradient of the log pdf evaluated at positions
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- Returns:
logpdf (np.ndarray) – log pdf at evaluated positions
- pdf(x)[source]#
Probability density function.
- Parameters:
x (np.ndarray) – Positions at which the pdf is evaluated
- Returns:
pdf (np.ndarray) – pdf at evaluated positions
queens.distributions.particles module#
Discrete particle distribution.
- class ParticleDiscreteDistribution(probabilities, sample_space, dimension=None)[source]#
Bases:
DiscreteDistribution
Discrete probability distributions.
Similar to particles in SMC, we use the approach where a distribution is approximated as particles:
The particles are the events of the sample space
The weights are denoted by the probabilities of the events
This class can be used directly, but is also used as parent class for other 1d discrete distributions as the computation of expectations is done in the same fashion.
- mean#
Mean of the distribution
- Type:
np.ndarray
- covariance#
Covariance of the distribution
- Type:
np.ndarray
- dimension#
Dimensionality of the distribution
- Type:
int
- probabilities#
Probabilities associated to all the events in the sample space
- Type:
np.ndarray
- sample_space#
Samples, i.e. possible outcomes of sampling the distribution
- Type:
np.ndarray
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
np.ndarray – CDF value of the distribution
- logpdf(x)[source]#
Log of the probability mass function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
queens.distributions.uniform module#
Uniform distribution.
- class UniformDistribution(lower_bound, upper_bound)[source]#
Bases:
ContinuousDistribution
Uniform distribution class.
- lower_bound#
Lower bound(s) of the distribution.
- Type:
np.ndarray
- upper_bound#
Upper bound(s) of the distribution.
- Type:
np.ndarray
- width#
Width(s) of the distribution.
- Type:
np.ndarray
- pdf_const#
Constant for the evaluation of the pdf.
- Type:
float
- logpdf_const#
Constant for the evaluation of the log pdf.
- Type:
float
- cdf(x)[source]#
Cumulative distribution function.
- Parameters:
x (np.ndarray) – Positions at which the cdf is evaluated
- Returns:
cdf (np.ndarray) – Cdf at evaluated positions
- draw(num_draws=1)[source]#
Draw samples.
- Parameters:
num_draws (int, optional) – Number of draws
- Returns:
samples (np.ndarray) – Drawn samples from the distribution
- grad_logpdf(x)[source]#
Gradient of the log pdf with respect to x.
- Parameters:
x (np.ndarray) – Positions at which the gradient of log pdf is evaluated
- Returns:
grad_logpdf (np.ndarray) – Gradient of the log pdf evaluated at positions
- logpdf(x)[source]#
Log of the probability density function.
- Parameters:
x (np.ndarray) – Positions at which the log pdf is evaluated
- Returns:
logpdf (np.ndarray) – log pdf at evaluated positions
queens.distributions.uniform_discrete module#
Discrete uniform distribution.
- class UniformDiscreteDistribution(sample_space)[source]#
Bases:
ParticleDiscreteDistribution
Discrete uniform distribution.