1 #ifndef GAUSSIAN_MIXTURE_MODEL_H
2 #define GAUSSIAN_MIXTURE_MODEL_H
5 #include <Eigen/Sparse>
14 std::vector<Eigen::VectorXd> mu_;
15 std::vector<Eigen::MatrixXd> sigma_;
16 std::vector<double> w_;
17 double log_likelihood_;
35 GaussianMixtureModel(std::vector<Eigen::VectorXd> means, std::vector<Eigen::MatrixXd> covariances, std::vector<double> weights);
60 void fitgmm(Eigen::MatrixXd samples,
int num_components,
int max_iterations,
double tolerance,
bool verbose);
71 void fitgmm2(Eigen::MatrixXd samples,
int num_components,
int max_iterations,
double tolerance,
bool verbose);
82 void fitgmm(std::vector<Eigen::VectorXd> samples,
int num_components,
int max_iterations,
double tolerance,
bool verbose);
87 std::vector<Eigen::VectorXd>
getMeans();
107 void setMeans(std::vector<Eigen::VectorXd> means);
132 double gauss_pdf_2d(Eigen::VectorXd q, Eigen::VectorXd mean, Eigen::MatrixXd cov);
136 #endif // GAUSSIAN_MIXTURE_MODEL_H
GaussianMixtureModel()
Use this method to initialize an empty GMM. Parameters must be set with the setter methods.
Definition: gaussian_mixture_model.cpp:37
~GaussianMixtureModel()
Destructor.
Definition: gaussian_mixture_model.cpp:79
double getLogLikelihood()
Log-likelihood getter.
Definition: gaussian_mixture_model.cpp:103
Definition: gaussian_mixture_model.h:9
void setCovariances(std::vector< Eigen::MatrixXd > covariances)
Covariance matrices setter method.
Definition: gaussian_mixture_model.cpp:114
std::vector< double > getWeights()
Weights getter.
Definition: gaussian_mixture_model.cpp:97
std::vector< Eigen::VectorXd > getMeans()
Mean getter.
Definition: gaussian_mixture_model.cpp:85
void setWeights(std::vector< double > weights)
Weights setter method.
Definition: gaussian_mixture_model.cpp:119
double gauss_pdf_2d(Eigen::VectorXd q, Eigen::VectorXd mean, Eigen::MatrixXd cov)
Use this method to calculate the probability of a given 2D point from a Bivariate Gaussian Distributi...
Definition: gaussian_mixture_model.cpp:142
void setMeans(std::vector< Eigen::VectorXd > means)
Mean points setter method.
Definition: gaussian_mixture_model.cpp:108
void fitgmm2(Eigen::MatrixXd samples, int num_components, int max_iterations, double tolerance, bool verbose)
Expectation-Maximization algorithm. Fits a GMM to a dataset recursively iterating between E-step and ...
Definition: gaussian_mixture_model.cpp:269
std::vector< Eigen::MatrixXd > getCovariances()
Covariances getter.
Definition: gaussian_mixture_model.cpp:91
void fitgmm(Eigen::MatrixXd samples, int num_components, int max_iterations, double tolerance, bool verbose)
Expectation-Maximization algorithm. Fits a GMM to a dataset recursively iterating between E-step and ...
Definition: gaussian_mixture_model.cpp:155
bool check()
Check dimensions consistency of the GMM parameters.
Definition: gaussian_mixture_model.cpp:124