A discrete distribution where the only observations are discrete observations. More...
Public Member Functions | |
DiscreteDistribution (const arma::vec &probabilities) | |
Define the discrete distribution as having the given probabilities for each observation. | |
DiscreteDistribution (const size_t numObservations) | |
Define the discrete distribution as having numObservations possible observations. | |
DiscreteDistribution () | |
Default constructor, which creates a distribution that has no observations. | |
size_t | Dimensionality () const |
Get the dimensionality of the distribution. | |
void | Estimate (const arma::mat &observations, const arma::vec &probabilities) |
Estimate the probability distribution from the given observations, taking into account the probability of each observation actually being from this distribution. | |
void | Estimate (const arma::mat &observations) |
Estimate the probability distribution directly from the given observations. | |
arma::vec & | Probabilities () |
Modify the vector of probabilities. | |
const arma::vec & | Probabilities () const |
Return the vector of probabilities. | |
double | Probability (const arma::vec &observation) const |
Return the probability of the given observation. | |
arma::vec | Random () const |
Return a randomly generated observation (one-dimensional vector; one observation) according to the probability distribution defined by this object. | |
std::string | ToString () const |
Private Attributes | |
arma::vec | probabilities |
A discrete distribution where the only observations are discrete observations.
This is useful (for example) with discrete Hidden Markov Models, where observations are non-negative integers representing specific emissions.
No bounds checking is performed for observations, so if an invalid observation is passed (i.e. observation > numObservations), a crash will probably occur.
This distribution only supports one-dimensional observations, so when passing an arma::vec as an observation, it should only have one dimension (vec.n_rows == 1). Any additional dimensions will simply be ignored.
Definition at line 53 of file discrete_distribution.hpp.
mlpack::distribution::DiscreteDistribution::DiscreteDistribution | ( | ) | [inline] |
Default constructor, which creates a distribution that has no observations.
Definition at line 59 of file discrete_distribution.hpp.
mlpack::distribution::DiscreteDistribution::DiscreteDistribution | ( | const size_t | numObservations | ) | [inline] |
Define the discrete distribution as having numObservations possible observations.
The probability in each state will be set to (1 / numObservations).
numObservations | Number of possible observations this distribution can have. |
Definition at line 69 of file discrete_distribution.hpp.
mlpack::distribution::DiscreteDistribution::DiscreteDistribution | ( | const arma::vec & | probabilities | ) | [inline] |
Define the discrete distribution as having the given probabilities for each observation.
probabilities | Probabilities of each possible observation. |
Definition at line 79 of file discrete_distribution.hpp.
size_t mlpack::distribution::DiscreteDistribution::Dimensionality | ( | ) | const [inline] |
Get the dimensionality of the distribution.
Definition at line 95 of file discrete_distribution.hpp.
void mlpack::distribution::DiscreteDistribution::Estimate | ( | const arma::mat & | observations, | |
const arma::vec & | probabilities | |||
) |
Estimate the probability distribution from the given observations, taking into account the probability of each observation actually being from this distribution.
observations | List of observations. | |
probabilities | List of probabilities that each observation is actually from this distribution. |
void mlpack::distribution::DiscreteDistribution::Estimate | ( | const arma::mat & | observations | ) |
Estimate the probability distribution directly from the given observations.
If any of the observations is greater than numObservations, a crash is likely to occur.
observations | List of observations. |
arma::vec& mlpack::distribution::DiscreteDistribution::Probabilities | ( | ) | [inline] |
Modify the vector of probabilities.
Definition at line 155 of file discrete_distribution.hpp.
References probabilities.
const arma::vec& mlpack::distribution::DiscreteDistribution::Probabilities | ( | ) | const [inline] |
Return the vector of probabilities.
Definition at line 153 of file discrete_distribution.hpp.
References probabilities.
double mlpack::distribution::DiscreteDistribution::Probability | ( | const arma::vec & | observation | ) | const [inline] |
Return the probability of the given observation.
If the observation is greater than the number of possible observations, then a crash will probably occur -- bounds checking is not performed.
observation | Observation to return the probability of. |
Definition at line 105 of file discrete_distribution.hpp.
References mlpack::Log::Debug, and probabilities.
arma::vec mlpack::distribution::DiscreteDistribution::Random | ( | ) | const |
Return a randomly generated observation (one-dimensional vector; one observation) according to the probability distribution defined by this object.
std::string mlpack::distribution::DiscreteDistribution::ToString | ( | ) | const |
arma::vec mlpack::distribution::DiscreteDistribution::probabilities [private] |
Definition at line 163 of file discrete_distribution.hpp.
Referenced by Probabilities(), and Probability().