15 #ifndef __MLPACK_CORE_DISTRIBUTIONS_DISCRETE_DISTRIBUTION_HPP
16 #define __MLPACK_CORE_DISTRIBUTIONS_DISCRETE_DISTRIBUTION_HPP
21 namespace distribution {
62 probabilities(arma::ones<arma::vec>(numObservations) / numObservations)
74 double sum = accu(probabilities);
76 this->probabilities = probabilities / sum;
79 this->probabilities.set_size(probabilities.n_elem);
80 this->probabilities.fill(1 / probabilities.n_elem);
101 const size_t obs = size_t(observation[0] + 0.5);
106 Log::Debug <<
"DiscreteDistribution::Probability(): received observation "
107 << obs <<
"; observation must be in [0, " <<
probabilities.n_elem
108 <<
"] for this distribution." << std::endl;
144 void Train(
const arma::mat& observations);
155 void Train(
const arma::mat& observations,
166 template<
typename Archive>
DiscreteDistribution(const arma::vec &probabilities)
Define the discrete distribution as having the given probabilities for each observation.
Linear algebra utility functions, generally performed on matrices or vectors.
FirstShim< T > CreateNVP(T &t, const std::string &name, typename boost::enable_if< HasSerialize< T >>::type *=0)
Call this function to produce a name-value pair; this is similar to BOOST_SERIALIZATION_NVP(), but should be used for types that have a Serialize() function (or contain a type that has a Serialize() function) instead of a serialize() function.
void Serialize(Archive &ar, const unsigned int)
Serialize the distribution.
arma::vec Random() const
Return a randomly generated observation (one-dimensional vector; one observation) according to the pr...
A discrete distribution where the only observations are discrete observations.
double Probability(const arma::vec &observation) const
Return the probability of the given observation.
DiscreteDistribution()
Default constructor, which creates a distribution that has no observations.
arma::vec & Probabilities()
Modify the vector of probabilities.
void Train(const arma::mat &observations)
Estimate the probability distribution directly from the given observations.
double LogProbability(const arma::vec &observation) const
Return the log probability of the given observation.
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
static util::NullOutStream Debug
Dumps debug output into the bit nether regions.
const arma::vec & Probabilities() const
Return the vector of probabilities.
static size_t Dimensionality()
Get the dimensionality of the distribution.
DiscreteDistribution(const size_t numObservations)
Define the discrete distribution as having numObservations possible observations. ...