19 #include "Eigen/Cholesky"
23 #include "drwnSuffStats.h"
26 using namespace Eigen;
59 static int MAX_ITERATIONS;
63 vector<drwnGaussian>
_g;
75 void initialize(
unsigned n,
unsigned k);
78 const char *
type()
const {
return "drwnGaussianMixture"; }
80 bool save(drwnXMLNode& xml)
const;
81 bool load(drwnXMLNode& xml);
85 void evaluate(
const MatrixXd& x, VectorXd& p)
const;
87 void evaluate(
const vector<vector<double> >& x, vector<double>& p)
const;
89 double evaluateSingle(
const VectorXd& x)
const;
91 double evaluateSingle(
const vector<double>& x)
const;
95 void sample(VectorXd& x)
const;
97 void sample(vector<double>& x)
const;
104 void train(
const MatrixXd& x,
double lambda = 1.0e-3);
106 void train(
const vector<vector<double> >& x,
double lambda = 1.0e-3);
114 double weight(
int k)
const {
return exp(_logLambda[k]); }
116 const VectorXd&
mean(
int k)
const {
return _g[k].mean(); }
118 const MatrixXd&
covariance(
int k)
const {
return _g[k].covariance(); }
const MatrixXd & covariance(int k) const
returns the covariance matrix for the k-th component
Definition: drwnGaussianMixture.h:118
vector< drwnGaussian > _g
gaussian components
Definition: drwnGaussianMixture.h:63
drwnGaussianMixture * clone() const
returns a copy of the class usually implemented as virtual Foo* clone() { return new Foo(*this); } ...
Definition: drwnGaussianMixture.h:79
unsigned dimension() const
returns the dimensionality of the features space
Definition: drwnGaussianMixture.h:112
VectorXd _logLambda
mixture weights (log space)
Definition: drwnGaussianMixture.h:64
Implements a multi-variant Gaussian mixture model.
Definition: drwnGaussianMixture.h:57
const VectorXd & mean(int k) const
returns the mean of the k-th component
Definition: drwnGaussianMixture.h:116
Implements a multi-variate gaussian distribution.
Definition: drwnGaussian.h:38
const char * type() const
returns object type as a string (e.g., Foo::type() { return "Foo"; })
Definition: drwnGaussianMixture.h:78
double weight(int k) const
returns the mixture weight of the k-th component
Definition: drwnGaussianMixture.h:114
const drwnGaussian & component(int k) const
returns the k-th component as a gaussian distribution
Definition: drwnGaussianMixture.h:120
standard Darwin object interface (cloneable and writeable)
Definition: drwnInterfaces.h:72
unsigned _n
feature dimension
Definition: drwnGaussianMixture.h:62
unsigned mixtures() const
returns the number of mixture components
Definition: drwnGaussianMixture.h:110