Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample > Class Template Reference

This class generates the parameter estimates for a mixture model using expectation maximization strategy. More...

#include <itkExpectationMaximizationMixtureModelEstimator.h>

Inheritance diagram for itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >:

Inheritance graph
[legend]
Collaboration diagram for itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >:

Collaboration graph
[legend]
List of all members.

[NOHEADER]

virtual const char * GetNameOfClass () const
Pointer New ()

Public Types

typedef ExpectationMaximizationMixtureModelEstimator Self
typedef Object Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TSample::MeasurementType MeasurementType
typedef TSample::MeasurementVectorType MeasurementVectorType
typedef MixtureModelComponentBase<
TSample > 
ComponentType
typedef std::vector< ComponentType * > ComponentVectorType
typedef MembershipFunctionBase<
MeasurementVectorType
ComponentMembershipFunctionType
typedef Array< double > ProportionVectorType
enum  TERMINATION_CODE { CONVERGED = 0, NOT_CONVERGED = 1 }

Public Member Functions

void SetSample (const TSample *sample)
const TSample * GetSample () const
ProportionVectorTypeGetProportions ()
int GetCurrentIteration ()
int AddComponent (ComponentType *component)
unsigned int GetNumberOfComponents ()
void Update ()
TERMINATION_CODE GetTerminationCode ()
ComponentMembershipFunctionTypeGetComponentMembershipFunction (int componentIndex)
void SetInitialProportions (ProportionVectorType &propotion)
ProportionVectorTypeGetInitialProportions ()
void SetMaximumIteration (int numberOfIterations)
int GetMaximumIteration ()

Protected Member Functions

 ExpectationMaximizationMixtureModelEstimator ()
virtual ~ExpectationMaximizationMixtureModelEstimator ()
void PrintSelf (std::ostream &os, Indent indent) const
bool CalculateDensities ()
double CalculateExpectation ()
bool UpdateComponentParameters ()
bool UpdateProportions ()
void GenerateData ()

Detailed Description

template<class TSample>
class itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >

This class generates the parameter estimates for a mixture model using expectation maximization strategy.

The first template argument is the type of the target sample data. This estimator expects one or more mixture model component objects of the classes derived from the MixtureModelComponentBase. The actual component (or module) parameters are updated by each component. Users can think this class as a strategy or a integration point for the EM procedure. The initial proportion (SetInitialProportions), the input sample (SetSample), the mixture model components (AddComponent), and the maximum iteration (SetMaximumIteration) are required. The EM procedure terminates when the current iteration reaches the maximum iteration or the model parameters converge.

Recent API changes: The static const macro to get the length of a measurement vector, MeasurementVectorSize has been removed to allow the length of a measurement vector to be specified at run time. It is now obtained at run time from the sample set as input. Please use the function GetMeasurementVectorSize() to get the length.

See also:
MixtureModelComponentBase, GaussianMixtureModelComponent

Definition at line 53 of file itkExpectationMaximizationMixtureModelEstimator.h.


Member Typedef Documentation

template<class TSample>
typedef MembershipFunctionBase< MeasurementVectorType > itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ComponentMembershipFunctionType
 

Type of the membership function base class

Definition at line 80 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef MixtureModelComponentBase< TSample > itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ComponentType
 

Type of the mixture model component base class

Definition at line 73 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef std::vector< ComponentType* > itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ComponentVectorType
 

Type of the component pointer storage

Definition at line 76 of file itkExpectationMaximizationMixtureModelEstimator.h.

Referenced by itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::~ExpectationMaximizationMixtureModelEstimator().

template<class TSample>
typedef SmartPointer<const Self> itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ConstPointer
 

Reimplemented from itk::Object.

Definition at line 60 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef TSample::MeasurementType itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::MeasurementType
 

TSample template argument related typedefs

Definition at line 69 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef TSample::MeasurementVectorType itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::MeasurementVectorType
 

Definition at line 70 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef SmartPointer< Self > itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::Pointer
 

Reimplemented from itk::Object.

Definition at line 59 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef Array< double > itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ProportionVectorType
 

Type of the array of the proportion values

Definition at line 83 of file itkExpectationMaximizationMixtureModelEstimator.h.

Referenced by itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::~ExpectationMaximizationMixtureModelEstimator().

template<class TSample>
typedef ExpectationMaximizationMixtureModelEstimator itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::Self
 

Standard class typedef

Reimplemented from itk::Object.

Definition at line 57 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
typedef Object itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::Superclass
 

Reimplemented from itk::Object.

Definition at line 58 of file itkExpectationMaximizationMixtureModelEstimator.h.


Member Enumeration Documentation

template<class TSample>
enum itk::Statistics::ExpectationMaximizationMixtureModelEstimator::TERMINATION_CODE
 

Termination status after running optimization

Enumeration values:
CONVERGED 
NOT_CONVERGED 

Definition at line 122 of file itkExpectationMaximizationMixtureModelEstimator.h.


Constructor & Destructor Documentation

template<class TSample>
itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ExpectationMaximizationMixtureModelEstimator  )  [protected]
 

template<class TSample>
virtual itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::~ExpectationMaximizationMixtureModelEstimator  )  [inline, protected, virtual]
 

Definition at line 133 of file itkExpectationMaximizationMixtureModelEstimator.h.

References itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ComponentVectorType, and itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::ProportionVectorType.


Member Function Documentation

template<class TSample>
int itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::AddComponent ComponentType component  ) 
 

Adds a new component (or class).

template<class TSample>
bool itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::CalculateDensities  )  [protected]
 

template<class TSample>
double itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::CalculateExpectation  )  [protected]
 

template<class TSample>
void itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GenerateData  )  [protected]
 

Starts the estimation process

template<class TSample>
ComponentMembershipFunctionType* itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetComponentMembershipFunction int  componentIndex  ) 
 

Gets the membership function specified by componentIndex argument.

template<class TSample>
int itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetCurrentIteration void   )  [inline]
 

Gets the current iteration.

Definition at line 109 of file itkExpectationMaximizationMixtureModelEstimator.h.

template<class TSample>
ProportionVectorType* itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetInitialProportions  ) 
 

Set/Gets the initial proportion values. The size of proportion vector should be same as the number of component (or classes)

template<class TSample>
int itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetMaximumIteration  ) 
 

Set/Gets the maximum number of iterations. When the optimization process reaches the maximum number of interations, even if the class parameters aren't converged, the optimization process stops.

template<class TSample>
virtual const char* itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetNameOfClass  )  const [virtual]
 

Standard macros

Reimplemented from itk::Object.

template<class TSample>
unsigned int itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetNumberOfComponents  ) 
 

Gets the total number of classes currently plugged in.

template<class TSample>
ProportionVectorType* itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetProportions  ) 
 

Gets the result proportion values

template<class TSample>
const TSample* itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetSample  )  const
 

Returns the target data

template<class TSample>
TERMINATION_CODE itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::GetTerminationCode  ) 
 

Gets the termination status

template<class TSample>
Pointer itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::New  )  [static]
 

Standard macros

Reimplemented from itk::Object.

template<class TSample>
void itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::Object.

template<class TSample>
void itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::SetInitialProportions ProportionVectorType propotion  ) 
 

Set/Gets the initial proportion values. The size of proportion vector should be same as the number of component (or classes)

template<class TSample>
void itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::SetMaximumIteration int  numberOfIterations  ) 
 

Set/Gets the maximum number of iterations. When the optimization process reaches the maximum number of interations, even if the class parameters aren't converged, the optimization process stops.

template<class TSample>
void itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::SetSample const TSample *  sample  ) 
 

Sets the target data that will be classified by this

template<class TSample>
void itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::Update  ) 
 

Runs the optimization process.

template<class TSample>
bool itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::UpdateComponentParameters  )  [protected]
 

template<class TSample>
bool itk::Statistics::ExpectationMaximizationMixtureModelEstimator< TSample >::UpdateProportions  )  [protected]
 


The documentation for this class was generated from the following file:
Generated at Thu May 25 03:04:23 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000