libcrn  3.9.5
A document image processing library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
crn::UnivariateGaussianMixture Class Reference

Univariate Gaussian mixture. More...

#include <CRNUnivariateGaussianMixture.h>

+ Inheritance diagram for crn::UnivariateGaussianMixture:
+ Collaboration diagram for crn::UnivariateGaussianMixture:

Public Member Functions

 UnivariateGaussianMixture ()
 Default constructor. More...
 
 UnivariateGaussianMixture (const UnivariateGaussianMixture &m)=default
 
 UnivariateGaussianMixture (UnivariateGaussianMixture &&)=default
 
template<typename ITER >
 UnivariateGaussianMixture (ITER it_begin, ITER it_end, size_t nb_seeds=2)
 
virtual ~UnivariateGaussianMixture () override
 Destructor. More...
 
UnivariateGaussianMixtureoperator= (const UnivariateGaussianMixture &)=delete
 
UnivariateGaussianMixtureoperator= (UnivariateGaussianMixture &&)=default
 
size_t GetNbMembers () const noexcept
 Returns the number of density functions. More...
 
double GetWeight (size_t k) const
 Returns the weight of a given density function. More...
 
UnivariateGaussianPDF GetMember (size_t k) const
 Returns a given density function. More...
 
double GetMean (size_t k) const
 Returns the mean of a given density function. More...
 
double GetVariance (size_t k) const
 Returns the variance of a given density function. More...
 
void AddMember (UnivariateGaussianPDF pdf, double Weight)
 Adds a density function. More...
 
void SetMember (UnivariateGaussianPDF pdf, double w, size_t k)
 Replaces a given density function and its weight. More...
 
void SortMembersByMeans (bool reverse=false)
 Sort members by means. More...
 
void SortMembersByVariances (bool reverse=false)
 Sort members by means. More...
 
void SortMembersByWeights (bool reverse=false)
 Sort members by weights. More...
 
double ValueAt (const double x) const
 Evaluates a pattern. More...
 
double ValueAt (const double x, size_t k, bool weight_flag=false) const
 Evaluates a pattern for a given density function. More...
 
unsigned int EM (const MatrixDouble &patterns, size_t nbSeeds=2, double epsilon=std::numeric_limits< double >::epsilon(), size_t maximalIterations=100)
 Expectation Maximization. More...
 
unsigned int EM (const std::vector< double > &patterns, size_t nbSeeds=2, double epsilon=std::numeric_limits< double >::epsilon(), size_t maximalIterations=100)
 Expectation Maximization. More...
 
template<typename ITER >
unsigned int EM (ITER it_begin, ITER it_end, size_t nbSeeds=2, double epsilon=std::numeric_limits< double >::epsilon(), size_t maximalIterations=100)
 Expectation Maximization. More...
 
String ToString () const
 Dumps a summary of the mixture to a string. More...
 
String ToString (size_t k) const
 Dumps a summary of one element of the mixture to a string. More...
 
double MLLE (const MatrixDouble &Data) const
 Maximum log-likelihood estimation. More...
 
double MLLE (const std::vector< double > &Data) const
 Maximum log-likelihood estimation. More...
 
template<typename ITER >
double MLLE (ITER it_begin, ITER it_end) const
 Maximum log-likelihood estimation. More...
 
double BIC (double l, size_t n) const
 Bayes Information Criterion estimation. More...
 
double BIC (const std::vector< double > &Data) const
 Bayes Information Criterion estimation. More...
 
std::vector< double > MakeRandomSample (size_t n=1, size_t m=100, bool reseed=true) const
 Creates a data sample following the mixture's probability law. More...
 
void Deserialize (xml::Element &el)
 
xml::Element Serialize (xml::Element &parent) const
 
- Public Member Functions inherited from crn::Object
virtual ~Object ()=default
 

Detailed Description

Univariate Gaussian mixture.

Model for univariate gaussian mixture

Author
Jean DUONG
Date
August 2008
Version
0.1

Definition at line 45 of file CRNUnivariateGaussianMixture.h.

Constructor & Destructor Documentation

crn::UnivariateGaussianMixture::UnivariateGaussianMixture ( )
inline

Default constructor.

Definition at line 49 of file CRNUnivariateGaussianMixture.h.

crn::UnivariateGaussianMixture::UnivariateGaussianMixture ( const UnivariateGaussianMixture m)
default
crn::UnivariateGaussianMixture::UnivariateGaussianMixture ( UnivariateGaussianMixture &&  )
default
template<typename ITER >
crn::UnivariateGaussianMixture::UnivariateGaussianMixture ( ITER  it_begin,
ITER  it_end,
size_t  nb_seeds = 2 
)
inline

Create a gaussian mixture to model a given set of data

Parameters
[in]it_beginiterator pointing to first pair of input data
[in]it_endending iterator
[in]nbSeedsthe number of density functions
Returns
the inferred gaussian mixture model

Definition at line 61 of file CRNUnivariateGaussianMixture.h.

UnivariateGaussianMixture::~UnivariateGaussianMixture ( )
overridevirtual

Destructor.

Destructor

Definition at line 38 of file CRNUnivariateGaussianMixture.cpp.

Member Function Documentation

void UnivariateGaussianMixture::AddMember ( UnivariateGaussianPDF  pdf,
double  w 
)

Adds a density function.

Add a member in mixture

Parameters
[in]PDFpointer to gaussian PDF to add as new member
[in]wWeight of the new member

Definition at line 128 of file CRNUnivariateGaussianMixture.cpp.

double crn::UnivariateGaussianMixture::BIC ( double  l,
size_t  n 
) const
inline

Bayes Information Criterion estimation.

Definition at line 127 of file CRNUnivariateGaussianMixture.h.

double crn::UnivariateGaussianMixture::BIC ( const std::vector< double > &  Data) const
inline

Bayes Information Criterion estimation.

Definition at line 129 of file CRNUnivariateGaussianMixture.h.

void UnivariateGaussianMixture::Deserialize ( xml::Element el)

Unsafe load from XML node

Author
Jean DUONG
Exceptions
ExceptionInvalidArgumentnot a UnivariateGaussianMixture
ExceptionNotFoundcannot find attribute
ExceptionDomainwrong attribute
Parameters
[in]elthe element to load

Definition at line 739 of file CRNUnivariateGaussianMixture.cpp.

unsigned int UnivariateGaussianMixture::EM ( const MatrixDouble patterns,
size_t  nbSeeds = 2,
double  epsilon = std::numeric_limits<double>::epsilon(),
size_t  maximalIterations = 100 
)

Expectation Maximization.

Expectation-Maximization algorithm for Gaussian mixture estimation optimization

Parameters
[in]patternsset of patterns stored as rows of a data matrix
[in]nbSeedsinteger
[in]epsilondouble
[in]maximalIterationsinteger
Returns
the number of iterations done to optimize the mixture

Definition at line 312 of file CRNUnivariateGaussianMixture.cpp.

unsigned int UnivariateGaussianMixture::EM ( const std::vector< double > &  patterns,
size_t  nbSeeds = 2,
double  epsilon = std::numeric_limits<double>::epsilon(),
size_t  maximalIterations = 100 
)

Expectation Maximization.

Expectation-Maximization algorithm for Gaussian mixture estimation optimization

Parameters
[in]patternsset of patterns stored as standard vector
[in]nbSeedsnumber of seeds
[in]epsilonprecision
[in]maximalIterationsmaximal number of iterations
Returns
the number of iterations done to optimize the mixture

Definition at line 458 of file CRNUnivariateGaussianMixture.cpp.

template<typename ITER >
unsigned int crn::UnivariateGaussianMixture::EM ( ITER  it_begin,
ITER  it_end,
size_t  nbSeeds = 2,
double  epsilon = std::numeric_limits<double>::epsilon(),
size_t  maximalIterations = 100 
)

Expectation Maximization.

Expectation-Maximization algorithm for Gaussian mixture estimation optimization

Parameters
[in]it_beginiterator pointing to first double-size_t pair of input data
[in]it_endending iterator
[in]nbSeedsnumber of seeds
[in]epsilonprecision
[in]maximalIterationsmaximal number of iterations
Returns
the number of iterations done to optimize the mixture

Definition at line 180 of file CRNUnivariateGaussianMixture.h.

double UnivariateGaussianMixture::GetMean ( size_t  k) const

Returns the mean of a given density function.

Get mean for a member

Exceptions
ExceptionDomainindex out of bounds
Parameters
[in]kinteger
Returns
the mean

Definition at line 91 of file CRNUnivariateGaussianMixture.cpp.

UnivariateGaussianPDF UnivariateGaussianMixture::GetMember ( size_t  k) const

Returns a given density function.

Get a member

Exceptions
ExceptionDomainindex out of bounds
Parameters
[in]kinteger
Returns
the member

Definition at line 51 of file CRNUnivariateGaussianMixture.cpp.

size_t crn::UnivariateGaussianMixture::GetNbMembers ( ) const
inlinenoexcept

Returns the number of density functions.

Definition at line 80 of file CRNUnivariateGaussianMixture.h.

double UnivariateGaussianMixture::GetVariance ( size_t  k) const

Returns the variance of a given density function.

Get variance for a member

Exceptions
ExceptionDomainindex out of bounds
Parameters
[in]kinteger
Returns
the variance

Definition at line 111 of file CRNUnivariateGaussianMixture.cpp.

double UnivariateGaussianMixture::GetWeight ( size_t  k) const

Returns the weight of a given density function.

Get weight for a member

Exceptions
ExceptionDomainindex out of bounds
Parameters
[in]kinteger
Returns
the weight

Definition at line 71 of file CRNUnivariateGaussianMixture.cpp.

std::vector< double > UnivariateGaussianMixture::MakeRandomSample ( size_t  n = 1,
size_t  m = 100,
bool  reseed = true 
) const

Creates a data sample following the mixture's probability law.

Simulate a random sample following the mixture's low

Parameters
[in]nsize of sample
[in]mtemporary sample size
[in]reseedshall the random seed be reinitialized?
Returns
a set of patterns generated by the mixture's low

Definition at line 603 of file CRNUnivariateGaussianMixture.cpp.

double UnivariateGaussianMixture::MLLE ( const MatrixDouble data) const

Maximum log-likelihood estimation.

Maximum log-likelyhood estimator

Parameters
[in]datadata stored as a column matrix
Returns
the maximum log-likelyhood of a set of patterns

Definition at line 273 of file CRNUnivariateGaussianMixture.cpp.

double UnivariateGaussianMixture::MLLE ( const std::vector< double > &  data) const

Maximum log-likelihood estimation.

Maximum log-likelyhood estimator

Parameters
[in]dataset of patterns stored as rows of a data matrix
Returns
the maximum log-likelyhood of a set of patterns

Definition at line 291 of file CRNUnivariateGaussianMixture.cpp.

template<typename ITER >
double crn::UnivariateGaussianMixture::MLLE ( ITER  it_begin,
ITER  it_end 
) const

Maximum log-likelihood estimation.

Maximum log-likelihood estimator

Parameters
[in]it_beginiterator pointing to first double-size_t pair of input data
[in]it_endending iterator
Returns
the maximum log-likelihood of a set of patterns

Definition at line 159 of file CRNUnivariateGaussianMixture.h.

UnivariateGaussianMixture& crn::UnivariateGaussianMixture::operator= ( const UnivariateGaussianMixture )
delete
UnivariateGaussianMixture& crn::UnivariateGaussianMixture::operator= ( UnivariateGaussianMixture &&  )
default
xml::Element UnivariateGaussianMixture::Serialize ( xml::Element parent) const

Unsafe save

Author
Jean DUONG
Parameters
[in]parentthe parent element to which we will add the new element
Returns
The newly created element

Definition at line 770 of file CRNUnivariateGaussianMixture.cpp.

void UnivariateGaussianMixture::SetMember ( UnivariateGaussianPDF  pdf,
double  w,
size_t  k 
)

Replaces a given density function and its weight.

Set a member in mixture

Exceptions
ExceptionDomainindex out of bounds
Parameters
[in]PDFpointer to gaussian PDF to add as new member
[in]wWeight of the new member
[in]kindex

Definition at line 142 of file CRNUnivariateGaussianMixture.cpp.

void UnivariateGaussianMixture::SortMembersByMeans ( bool  reverse = false)

Sort members by means.

Sort members in mixture in increasing mean order

Definition at line 204 of file CRNUnivariateGaussianMixture.cpp.

void UnivariateGaussianMixture::SortMembersByVariances ( bool  reverse = false)

Sort members by means.

Sort members in mixture in increasing mean order

Definition at line 212 of file CRNUnivariateGaussianMixture.cpp.

void UnivariateGaussianMixture::SortMembersByWeights ( bool  reverse = false)

Sort members by weights.

Sort members in mixture in increasing weight

Definition at line 220 of file CRNUnivariateGaussianMixture.cpp.

String UnivariateGaussianMixture::ToString ( ) const

Dumps a summary of the mixture to a string.

Dump the mixture parameters to a string

Returns
the string

Definition at line 688 of file CRNUnivariateGaussianMixture.cpp.

String UnivariateGaussianMixture::ToString ( size_t  k) const

Dumps a summary of one element of the mixture to a string.

Dump the parameters for one member in the mixture to a string

Parameters
[in]kinteger
Returns
the string

Definition at line 707 of file CRNUnivariateGaussianMixture.cpp.

double UnivariateGaussianMixture::ValueAt ( const double  x) const

Evaluates a pattern.

Evaluates an element

Parameters
[in]xdata argument to evaluate
Returns
the probability of the element

Definition at line 232 of file CRNUnivariateGaussianMixture.cpp.

double UnivariateGaussianMixture::ValueAt ( const double  x,
size_t  k,
bool  weight_flag = false 
) const

Evaluates a pattern for a given density function.

Evaluate only for one member of the mixture

Exceptions
ExceptionDomainindex out of bounds
Parameters
[in]xdata argument to evaluate
[in]kmember index
Returns
the probability of the member

Definition at line 252 of file CRNUnivariateGaussianMixture.cpp.


The documentation for this class was generated from the following files: