const-fixing functions
[mldemos:baraks-mldemos.git] / _AlgorithmsPlugins / GMM / classifierGMM.h
1 /*********************************************************************\r
2 MLDemos: A User-Friendly visualization toolkit for machine learning\r
3 Copyright (C) 2010  Basilio Noris\r
4 Contact: mldemos@b4silio.com\r
5 \r
6 This library is free software; you can redistribute it and/or\r
7 modify it under the terms of the GNU Lesser General Public License,\r
8 version 3 as published by the Free Software Foundation.\r
9 \r
10 This library is distributed in the hope that it will be useful, but\r
11 WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
13 Lesser General Public License for more details.\r
14 \r
15 You should have received a copy of the GNU Lesser General Public\r
16 License along with this library; if not, write to the Free\r
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
18 *********************************************************************/\r
19 #ifndef _CLASSIFIER_GMM_H_\r
20 #define _CLASSIFIER_GMM_H_\r
21 \r
22 #include <vector>\r
23 #include <map>\r
24 #include "classifier.h"\r
25 #include <fgmm/fgmm++.hpp>\r
26 \r
27 class ClassifierGMM : public Classifier\r
28 {\r
29 public:\r
30         std::vector<Gmm*> gmms;\r
31         std::vector<float*> data;\r
32 private:\r
33         u32 nbClusters;\r
34         u32 covarianceType;\r
35         u32 initType;\r
36 public:\r
37         ClassifierGMM();\r
38         ~ClassifierGMM();\r
39         void Train(std::vector< fvec > samples, ivec labels);\r
40     float Test(const fvec &sample) const ;\r
41     float Test(const fVec &sample) const ;\r
42     fvec TestMulti(const fvec &sample) const ;\r
43     const char *GetInfoString() const ;\r
44     void SaveModel(const std::string filename) const ;\r
45     bool LoadModel(const std::string filename);\r
46 \r
47         void SetParams(u32 nbClusters, u32 covarianceType, u32 initType);\r
48         void Update();\r
49 };\r
50 \r
51 #endif // _CLASSIFIER_GMM_H_\r