OEFPHistogram¶
class OEFPHistogram
The OEFPHistogram class is used to hold a histogram of similarity scores.
This class is an efficient way to obtain statistics on large databases which would be unfeasible to keep as full NxN similarity matrices.
- The following classes derive from this class:
See also
Constructors¶
OEFPHistogram(size_t numBins=200, double min=0.0, double max=1.0)
Creates an OEFPHistogram object with given number of bins and range.
- nrbins
- Number of bins in the histogram. (default=200)
- min
- Minimum bound (inclusive) of the histogram range. (default = 0.0)
- max
- Maximum bound (inclusive) of the histogram range. (default = 1.0)
Note
The default range of [0,1] covers all built-in similarity measures.
AddSample¶
size_t AddSample(const float sample)
size_t AddSample(const double sample)
Adds the sample into the histogram by incrementing the count in the relevant bin. Returns the bin index that the sample went into.
GetBinBoundaries¶
OESystem::OEIterBase<double> *GetBinBoundaries() const
Returns an iterator over the boundaries for each bin.
Note
The number of elements in this iterator is equal to OEFPHistogram.NumBins +1.
GetBinCenters¶
OESystem::OEIterBase<double> *GetBinCenters() const
Returns an iterator over the center value for each bin.
Note
The number of elements in this iterator is equal to OEFPHistogram.NumBins.
Hint
It is generally reasonable to plot the results of OEFPHistogram.GetCounts or OEFPHistogram.GetDensity against the bin centers returned by this method.
GetBinIdx¶
size_t GetBinIdx(const float sample) const
size_t GetBinIdx(const double sample) const
Returns the bin index that the sample would go into without actually adding the sample into the bin.
GetCounts¶
OESystem::OEIterBase<unsigned int> *GetCounts() const
Returns an iterator over the bin counts.
Note
Even though counts are returned as unsigned integers, they are internally kept as size_t. If the counts are overflowing the unsigned int type of the system, it may be more appropriate to use the normalized OEFPHistogram.GetDensity instead.
GetDensity¶
OESystem::OEIterBase<double> *GetDensity() const
Returns an iterator over the probability density for each bin.
Note
Result is equivalent to OEFPHistogram.GetCounts normalized by OEFPHistogram.NumSamples.
Mean¶
double Mean()
Approximates and returns the sample mean over the histogram.
Note
This approximation is affected by number of bins in the histogram.
Std¶
double Std()
Approximates and returns the sample standard deviation over the histogram.
Note
This approximation is affected by number of bins in the histogram.