Namespace Microsoft.ML.Probabilistic.Distributions
Classes
AccumulateIntoCollection<T>
An Accumulator that adds each element to a collection.
AccumulatorList<T>
Wraps a list of accumulators, adding each sample to all of them.
Array2DEstimator<ItemEstimator, DistributionArray, Distribution>
Estimator for a 2-D DistributionArray type, where the samples are distributions
Array2DEstimator<ItemEstimator, DistributionArray, Distribution, Sample>
Estimator for a 2-D DistributionArray type.
ArrayEstimator
Useful static methods relating to array estimators
ArrayEstimator<T>
Static class which implements useful functions on estimator arrays.
ArrayEstimator<ItemEstimator, DistributionArray, Distribution>
Estimator for a DistributionArray type where the sample type is a distribution
ArrayEstimator<ItemEstimator, DistributionArray, Distribution, Sample>
Estimator for a DistributionArray type.
BernoulliEstimator
Estimates a Bernoulli distribution from samples.
BernoulliIntegerSubset
Represents a sparse list of Bernoulli distributions considered as a distribution over a variable-sized list of integers, which are the indices of elements in the boolean list with value 'true'.
BetaEstimator
Estimates a Beta distribution from samples.
BurnInAccumulator<T>
Wraps an accumulator, discarding the first BurnIn samples.
CollectionElementMappingInfo
Element mapping information for the product of collection distributions
ConditionalList<TDist>
Conditional List
ConstantFunction
Class implementing the constant function. Used as a domain prototype for distributions over functions
Dirichlet
A Dirichlet distribution on probability vectors.
DirichletEstimator
Estimates a Dirichlet distribution from samples.
Discrete
An arbitrary distribution over integers [0,D-1].
DiscreteEnum<TEnum>
A discrete distribution over the values of an enum.
DiscreteEstimator
Estimates a discrete distribution from samples.
Distribution
Static class which implements useful functions on distributions.
Distribution<T>
Static class which implements useful functions on distributions.
DistributionArray<T>
A distribution over an array, where each element is independent and has distribution type T
DistributionArray<T, DomainType>
A distribution over an array of type DomainType
, where each element is independent and has distribution of type T
DistributionArray2D<T>
A distribution over a 2D array, where each element is independent and has distribution type T
DistributionArray2D<T, DomainType>
A distribution over an array of type DomainType
, where each element is independent and has distribution of type T
DistributionFileArray<T, DomainType>
A distribution over an array of type DomainType
, where each element is independent and has distribution of type T
, all stored in a file.
DistributionRefArray<T, DomainType>
A distribution over an array of type DomainType
, where each element is independent and has distribution of type T
DistributionRefArray2D<T, DomainType>
A distribution over a 2D array of type DomainType
, where each element is independent and has distribution of type T
DistributionStructArray<T, DomainType>
A distribution over an array of type DomainType
, where each element is independent and has distribution of type T
DistributionStructArray2D<T, DomainType>
A distribution over a 2D array of type DomainType
, where each element is independent and has distribution of type T
EstimatorFactory
Estimator factor. Given a distribution instance, create a compatible estimator instance
GammaEstimator
Estimates a Gamma distribution from samples.
GammaPowerEstimator
Estimates a GammaPower distribution from samples.
GaussianEstimator
Estimates a Gaussian distribution from samples.
GaussianProcess
A base class for Gaussian process distributions
GenericDiscreteBase<T, TThis>
A generic base class for discrete distributions over a type T.
GibbsMarginal<TDist, T>
Gibbs marginal - wraps underlying estimator, provides burn-in and thinning, and maintains thinned samples and conditionals
ImproperDistributionException
Exception thrown when a distribution is improper and its expectations need to be computed.
InnerQuantiles
Represents a distribution using the quantiles at probabilities (1,...,n)/(n+1)
IrregularQuantiles
Represents a distribution using the quantiles at arbitrary probabilities.
LeftTruncatedPoisson
Left-truncated Com-Poisson distribution.
LinearSpline
Very simple 1-D linear spline class which implements IFunction. Assumes knots at regular positions - given by a start and increment. The vector of knot values defines how many knots.
ListDistribution<TElement, TElementDistribution>
Represents a distribution over List<T> that use a weighted finite state automaton as the underlying weight function.
ListDistribution<TList, TElement, TElementDistribution>
Represents a distribution over lists that use a weighted finite state automaton as the underlying weight function.
ListDistribution<TList, TElement, TElementDistribution, TThis>
A base class for distributions over lists that use a weighted finite state automaton as the underlying weight function.
Mixture<TDist, TDomain, TThis>
A mixture of distributions of the same type
MixtureEstimator<TDist>
An estimator which is a mixture of distributions of the same type
OuterQuantiles
Represents a distribution using the quantiles at probabilities (0,...,n-1)/(n-1)
PointMass<T>
A point mass, which is the 'distribution' you get for an observed variable. All the probability mass is at the point given by observed value.
PointMassEstimator<T>
Estimates a point mass distribution from a sample or point mass distribution.
PoissonEstimator
Estimates a Poisson distribution from samples.
QuantileEstimator
Subsamples data to provide accurate estimation of quantiles.
Rank1Pot
Rank 1 potential for a sparse GP. This low rank parameterisation is used for messages flowing from a SparseGP evaluation factor to a function variable.
SampleList<T>
Sample List
SequenceDistribution<TSequence, TElement, TElementDistribution, TSequenceManipulator, TAutomaton, TWeightFunction, TWeightFunctionFactory, TThis>
A base class for implementations of distributions over sequences.
SequenceDistributionFormats
A collection of sequence distribution formats.
SparseBernoulliList
Represents a sparse list of Bernoulli distributions, optimized for the case where many share the same parameter value. The class supports an approximation tolerance which allows elements close to the common value to be automatically reset to the common value.
SparseBetaList
Represents a sparse list of Beta distributions, optimized for the case where many share the same parameter value. The class supports an approximation tolerance which allows elements close to the common value to be automatically reset to the common value.
SparseDistributionList<TDist, TDomain, TThis>
Abstract base class for a homogeneous sparse list of distributions. The class supports an approximation tolerance which allows elements close to the common value to be automatically reset to the common value. The list implements the interfaces which allow these distributions to participate in message passing.
SparseGammaList
Represents a sparse list of Gamma distributions, optimized for the case where many share the same parameter value. The class supports an approximation tolerance which allows elements close to the common value to be automatically reset to the common value.
SparseGaussianList
Represents a sparse list of Gaussian distributions, optimized for the case where many share the same parameter value. The class supports an approximation tolerance which allows elements close to the common value to be automatically reset to the common value.
SparseGP
A Gaussian Process distribution over functions, represented by a GP prior times a set of regression likelihoods on basis points.
SparseGPFixed
This class maintains all the fixed parameters for a sparse GP
- i.e. parameters which the inference does not change. All SparseGP messages can refer to a single SparseGPFixed class, and cloning of SparseGP instances will just copy the reference
StringDistribution
Represents a distribution over strings that uses a weighted finite state automaton as the underlying weight function.
TruncatableDistribution<T>
TruncatedDistribution
TruncatedGaussianEstimator
Estimates a TruncatedGaussian distribution from samples.
TruncatedPoisson
Left-and-right-truncated Com-Poisson distribution.
UnnormalizedDiscrete
Represents a discrete distribution in the log domain without explicit normalization.
VectorGaussian
Represents a multivariate Gaussian distribution.
VectorGaussianEstimator
Estimates a Gaussian distribution from samples.
VectorGaussianMoments
Represents a multivariate Gaussian distribution.
Wishart
A Wishart distribution on positive definite matrices.
WishartEstimator
Estimates a Wishart distribution from samples.
WordStrings
Sets of strings of whole words.
Structs
Bernoulli
Represents a distribution on a binary variable.
Beta
A Beta distribution over the interval [0,1].
Binomial
Binomial distribution over the integers [0,n]
ConjugateDirichlet
Represents the distribution proportion to x^{Shape-1} exp(-Ratex) / B(x,D)^K where B(x,D)=Gamma(x)^D/Gamma(Dx)
DiscreteChar
Represents a distribution over characters.
Gamma
A Gamma distribution on positive reals.
GammaPower
The distribution of a Gamma variable raised to a power. The Weibull distribution is a special case.
Gaussian
Represents a one-dimensional Gaussian distribution.
ImmutableDiscreteChar
Represents a distribution over characters.
ImmutableDiscreteChar.CharRange
Represents a range of characters, with an associated probability.
NonconjugateGaussian
Nonconjugate Gaussian messages for VMP. The mean has a Gaussian distribution and the variance a Gamma distribution.
Pareto
A Pareto distribution over the real numbers from lowerBound to infinity.
Poisson
A Poisson distribution over the integers [0,infinity).
TruncatedGamma
A distribution over real numbers between an upper and lower bound. If LowerBound=0 and UpperBound=Inf, it reduces to an ordinary Gamma distribution.
TruncatedGaussian
A distribution over real numbers between an upper and lower bound. If both bounds are infinite, it reduces to an ordinary Gaussian distribution.
WrappedGaussian
A Gaussian distribution on a periodic domain, such as angles between 0 and 2*pi.
Interfaces
Accumulator<T>
Indicates support for adding an item to a distribution estimator
CanComputePower<TDist>
Supports computing the value of the current instance raised to a power.
CanComputeProduct<T>
Supports computing the product of the current instance and another value that has the same type as the product.
CanComputeProduct<TOther, TResult>
Supports computing the product of the current instance and another value.
CanComputeRatio<T>
Supports computing the ratio of the current instance and another value that has the same type as the ratio.
CanComputeRatio<TDenominator, TResult>
Supports computing the ratio of the current instance and another value.
CanCopyWithAllElementsSetTo<T, TDist>
Whether the distribution supports creating copies with all elements set to duplicates of the same value.
CanCopyWithMean<MeanType, TDist>
Whether the distribution supports creating copies with different mean value.
CanCopyWithMeanAndVariance<MeanType, VarType, TDist>
Whether the distribution supports creating copies with different mean and variance.
CanCreatePartialUniform<TDist>
Whether the distribution can create another distribution of the same type and with the same support, but partially uniform over said support.
CanCreatePointMass<T, TDist>
Whether the distribution supports being a point mass.
CanCreateUniform<TDist>
Whether the distribution can be uniform.
CanEnumerateSupport<T>
Whether the distribution supports enumeration over the support - i.e. enumeration over the domain values with non-zero mass.
CanGetAverageLog<T>
Whether the distribution supports the expected logarithm of one instance under another
CanGetLogAverageOf<T>
Whether the distribution can compute the expectation of another distribution's value.
CanGetLogAverageOfPower<T>
Whether the distribution can compute the expectation of another distribution raised to a power.
CanGetLogNormalizer
Whether the distribution can compute its normalizer.
CanGetLogProb<T>
Whether the distribution supports evaluation of its density
CanGetLogProbPrep<DistributionType, T>
Whether the distribution supports preallocation of a workspace for density evaluation
CanGetMean<MeanType>
Whether the distribution supports retrieval of a mean value
CanGetMeanAndVariance<MeanType, VarType>
Whether the distribution supports the joint getting of mean and variance where the mean and variance are reference types
CanGetMeanAndVarianceOut<MeanType, VarType>
Whether the distribution supports the joint getting of mean and variance where the mean and variance are returned as 'out' argiments
CanGetMode<ModeType>
Whether the distribution supports retrieval of the most probable value
CanGetProbLessThan<T>
CanGetQuantile<T>
CanGetVariance<VarType>
Whether the distribution supports retrieval of a variance value
CanSamplePrep<DistributionType, T>
Whether the distribution supports preallocation of a workspace for sampling
CanSetMean<MeanType>
Whether the distribution supports setting of its mean value
CanSetMeanAndVariance<MeanType, VarType>
Whether the distribution supports the joint setting of mean and variance
Estimator<T>
Indicates support for retrieving an estimated distribution
HasPoint<T>
Whether the distribution supports being a point mass
ICanTruncateLeft<TDomain>
Whether the distribution can be left-truncated.
ICanTruncateRight<TDomain>
Whether the distribution can be right truncated.
ICollectionDistribution
Interface to allow untyped access to collection distribution
ICollectionDistribution<TElement, TElementDist>
Collection distribution interface
IDistribution
Base type for all distributions that doesn't specify over which domain distribution is defined.
IDistribution<T>
Distribution interface
IFunction
Function interface - used for distributions over a function domain
IGaussianProcess
Basic GP interface
IImmutableDistribution
Base type for all immutable distributions that doesn't specify over which domain distribution is defined.
IImmutableDistribution<T, TThis>
Immutable distribution interface
IsDistributionWrapper
Marker interface for classes which wrap distributions
ITruncatableDistribution<T>
Sampleable<T>
Whether the distribution supports sampling
SettableToPartialUniform<TDist>
Whether the distribution can be set to be uniform over the support of another distribution.
SettableToUniform
Whether the distribution can be set to uniform
Summable<T>
Supports computing the weighted sum of the current instance and another value that has the same type as the result.
Summable<TOther, TResult>
Supports computing the weighted sum of the current instance and another value.
SummableExactly<T>
Indicates that the computed weighted sum is exact.
SummableExactly<TOther, TResult>
Indicates that the computed weighted sum is exact.
Enums
ConjugateDirichlet.ApproximationMethod
Approximation method to use for non-analytic expectations. Asymptotic: use expectations under the approximating Gamma distribution GaussHermiteQuadrature: Use Gauss-Hermite quadrature with 32 quadrature points ClenshawCurtisQuadrature: Use Clenshaw Curtis quadrature with an adaptive number of quadrature points
ImmutableDiscreteChar.CharClasses
Delegates
CreateEstimatorMethod
Evaluator<DistributionType, T>
Delegate type for evaluating log densities. This is used for distributions such as VectorGaussian which have a large memory footprint. If a distribution supports CanGetLogProbPrep<DistributionType, T>, then it can return a delegate of this type to do evaluations without recreating a workspace each time.
Sampler<T>
Delegate type for sampling
Sampler<DistributionType, T>
Delegate type for sampling a distribution. This is used for distributions such as VectorGaussian which have a large memory footprint. If a distribution supports CanSamplePrep<DistributionType, T>, then it can return a delegate of this type to do successive sampling without recreating a workspace each time.