IT++ Logo
mog_diag_em.h
Go to the documentation of this file.
1
29#ifndef MOG_DIAG_EM_H
30#define MOG_DIAG_EM_H
31
32#include <itpp/stat/mog_diag.h>
33#include <itpp/itexports.h>
35
36namespace itpp
37{
38
43class ITPP_EXPORT MOG_diag_EM_sup : public MOG_diag
44{
45
46public:
47
49 MOG_diag_EM_sup() { verbose = false; }
50
53
55 void ml(MOG_diag &model_in, Array<vec> &X_in, int max_iter_in = 10, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
57 void map(MOG_diag &model_in, MOG_diag &prior_model, Array<vec> &X_in, int max_iter_in = 10, double alpha_in = 0.5, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
58
59protected:
60
62 bool verbose;
63
65 int N;
66
69
71 double ** c_X;
72
74 double var_floor;
77
79 void inline update_internals();
81 void inline sanitise_params();
83 double ml_update_params();
85 void ml_iterate();
86
87private:
88
89 vec tmpvecK;
90 vec tmpvecD;
91 vec acc_loglhood_K;
92
93 Array<vec> acc_means;
94 Array<vec> acc_covs;
95
96 double * c_tmpvecK;
97 double * c_tmpvecD;
98 double * c_acc_loglhood_K;
99
100 double ** c_acc_means;
101 double ** c_acc_covs;
102
103
104};
105
106//
107// convenience functions
108
136void MOG_diag_ML(MOG_diag &model_in, Array<vec> &X_in, int max_iter_in = 10, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
137
156void MOG_diag_MAP(MOG_diag &model_in, MOG_diag &prior_model_in, Array<vec> &X_in, int max_iter_in = 10, double alpha_in = 0.5, double var_floor_in = 0.0, double weight_floor_in = 0.0, bool verbose_in = false);
157
158}
159
160#endif // #ifndef MOG_DIAG_EM_H
161
Import/Export definitions for some templates defined in base folder.
support class for MOG_diag_ML() and MOG_diag_MAP()
Definition: mog_diag_em.h:44
int max_iter
Maximum number of iterations.
Definition: mog_diag_em.h:68
double var_floor
ADD DOCUMENTATION HERE.
Definition: mog_diag_em.h:74
MOG_diag_EM_sup()
Default constructor.
Definition: mog_diag_em.h:49
double weight_floor
ADD DOCUMENTATION HERE.
Definition: mog_diag_em.h:76
int N
number of training vectors
Definition: mog_diag_em.h:65
bool verbose
Whether we print the progress.
Definition: mog_diag_em.h:62
~MOG_diag_EM_sup()
Default destructor.
Definition: mog_diag_em.h:52
double ** c_X
'C' pointers to training vectors
Definition: mog_diag_em.h:71
Diagonal Mixture of Gaussians (MOG) class.
Definition: mog_diag.h:56
void MOG_diag_ML(MOG_diag &model_in, Array< vec > &X_in, int max_iter_in, double var_floor_in, double weight_floor_in, bool verbose_in)
Diagonal Mixture of Gaussians class - header file.
itpp namespace
Definition: itmex.h:37
void MOG_diag_MAP(MOG_diag &, MOG_diag &, Array< vec > &, int, double, double, double, bool)
SourceForge Logo

Generated on Sun Jun 5 2022 21:26:42 for IT++ by Doxygen 1.9.3