MixEF Class Reference

Mixture of Exponential Family Densities. More...

#include <mixef.h>

Inheritance diagram for MixEF:

Inheritance graph
[legend]
Collaboration diagram for MixEF:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 MixEF (const Array< BMEF * > &Coms0, const vec &alpha0)
 Full constructor.
void init (BMEF *Com0, const mat &Data, int c=5)
void bayes (const vec &dt)
 Recursive EM-like algorithm (QB-variant), see Karny et. al, 2006.
void bayes (const mat &dt)
 EM algorithm.
void bayesB (const mat &dt)
 Batch Bayes rule (columns of Dt are observations).
double logpred (const vec &dt) const
const epdf_epdf () const
 Returns a pointer to the epdf representing posterior density on parameters. Use with care!
emixpredictor (const RV &rv)
 Constructs a predictive density (marginal density on data).
void flatten (double sumw=1.0)
 Flatten the density as if it was not estimated from the data.
vec logpred_m (const mat &dt) const
 Matrix version of logpred.
const RV_rv () const
 access function
double _ll () const
 access function
void set_evalll (bool evl0)
 access function
virtual BM_copy_ (bool changerv=false)

Protected Member Functions

void build_est ()
 Auxiliary function for use in constructors.

Protected Attributes

int n
 Number of components.
Array< BMEF * > Coms
 Models for Components of $\theta_i$.
multiBM weights
 Statistics for weights.
eprodest
 Posterior on component parameters.
RV rv
 Random variable of the posterior.
double ll
 Logarithm of marginalized data likelihood.
bool evalll
 If true, the filter will compute likelihood of the data record and store it in ll . Set to false if you want to save computational time.


Detailed Description

Mixture of Exponential Family Densities.

An approximate estimation method for models with latent discrete variable, such as mixture models of the following kind:

\[ f(y_t|\psi_t, \Theta) = \sum_{i=1}^{n} w_i f(y_t|\psi_t, \theta_i) \]

where $\psi$ is a known function of past outputs, $w=[w_1,\ldots,w_n]$ are component weights, and component parameters $\theta_i$ are assumed to be mutually independent. $\Theta$ is an aggregation af all component parameters and weights, i.e. $\Theta = [\theta_1,\ldots,\theta_n,w]$.

The characteristic feature of this model is that if the exact values of the latent variable were known, estimation of the parameters can be handled by a single model. For example, for the case of mixture models, posterior density for each component parameters would be a BayesianModel from Exponential Family.

This class uses EM-style type algorithms for estimation of its parameters. Under this simplification, the posterior density is a product of exponential family members, hence under EM-style approximate estimation this class itself belongs to the exponential family.

TODO: Extend BM to use rvc.


Member Function Documentation

void MixEF::init ( BMEF Com0,
const mat &  Data,
int  c = 5 
)

Initializing the mixture by a random pick of centroids from data

Parameters:
Com0 Initial component - necessary to determine its type.
Data Data on which the initialization will be done
c Initial number of components, default=5

References BM::_copy_(), build_est(), Coms, est, n, multiBM::set_parameters(), and weights.

Referenced by merger::merge().

double MixEF::logpred ( const vec &  dt  )  const [virtual]

Evaluates predictive log-likelihood of the given data record I.e. marginal likelihood of the data with the posterior integrated out.

Reimplemented from BM.

References multiBM::_epdf(), Coms, epdf::mean(), n, and weights.

Referenced by merger::evalpdflog(), and merger::merge().

virtual BM* BM::_copy_ ( bool  changerv = false  )  [inline, virtual, inherited]

Copy function required in vectors, Arrays of BM etc. Have to be DELETED manually! Prototype: BM* _copy_(){BM Tmp*=new Tmp(this*); return Tmp; }

Reimplemented in ARX.

Referenced by init().


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

Generated on Wed Oct 15 15:57:16 2008 for mixpp by  doxygen 1.5.6