1 #ifndef DISCRETEDISTRIBUTION_HPP 2 #define DISCRETEDISTRIBUTION_HPP 56 std::fill(
prob.begin(),
prob.end(),0.0);
66 std::fill(
prob.begin(),
prob.end(),0.0);
75 float pdf(
const int x)
const 104 stream <<
prob[c] <<
" ";
105 stream <<
prob[n_classes - 1];
149 template <
class TLabelIterator,
class TIdIterator>
150 void fit(TLabelIterator first_label, TLabelIterator last_label, TIdIterator );
154 float pdf(
const int x,
const TId )
const;
196 template <
class TLabelIterator,
class TIdIterator>
199 const int n_data = std::distance(first_label, last_label);
207 std::fill(
prob.begin(),
prob.end(),0.0);
209 for( ; first_label != last_label; ++first_label)
210 prob[*first_label] += 1.0;
212 std::for_each(
prob.begin(),
prob.end(), [=] (
float& p) { p /= float(n_data); });
void reset()
Reset function - return probabilities to zero.
Definition: discreteDistribution.hpp:64
int n_classes
The number of discrete classes.
Definition: discreteDistribution.hpp:172
void printOut(std::ofstream &stream) const
Prints the defining parameters of the distribution to an output filestream.
Definition: discreteDistribution.hpp:101
discreteDistribution(const int num_classes)
Constructor.
Definition: discreteDistribution.hpp:43
void normalise()
Normalise the distribution to ensure it is valid.
Definition: discreteDistribution.hpp:85
void fit(TLabelIterator first_label, TLabelIterator last_label, TIdIterator)
Fit the distribution to a set of labels.
Definition: discreteDistribution.hpp:197
float pdf(const int x) const
Returns the probability of a particular label.
Definition: discreteDistribution.hpp:75
void raiseDistributionTemperature(const double T)
Smooth the distribution using the softmax function.
Definition: discreteDistribution.hpp:135
void readIn(std::ifstream &stream)
Reads the defining parameters of the distribution from a filestream.
Definition: discreteDistribution.hpp:114
Namespace containing the canopy library for random forest models.
Definition: circularRegressor.hpp:13
void initialise(const int num_classes)
Initialise with a certain number of classes and reset probabilities to zero.
Definition: discreteDistribution.hpp:52
friend std::ifstream & operator>>(std::ifstream &stream, discreteDistribution &dist)
Allows the distribution to be written to read from a file via the streaming operator '>>'...
Definition: discreteDistribution.hpp:168
A distribution that defines the probabilities over a number of discrete (integer-valued) class labels...
Definition: discreteDistribution.hpp:26
discreteDistribution()
Default constructor.
Definition: discreteDistribution.hpp:36
std::vector< float > prob
Vector containing the probabilities of each class.
Definition: discreteDistribution.hpp:173
void combineWith(const discreteDistribution &dist, const TId)
Combine this distribution with a second by summing the probability values, without normalisation...
Definition: discreteDistribution.hpp:244
friend std::ofstream & operator<<(std::ofstream &stream, const discreteDistribution &dist)
Allows the distribution to be written to a file via the streaming operator '<<'.
Definition: discreteDistribution.hpp:163