const-fixing functions
[mldemos:baraks-mldemos.git] / _AlgorithmsPlugins / Projections / classifierKPCA.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_KPCA_H_\r
20 #define _CLASSIFIER_KPCA_H_\r
21 \r
22 #include <vector>\r
23 #include <classifier.h>\r
24 #include "eigen_pca.h"\r
25 \r
26 class ClassifierKPCA : public Classifier\r
27 {\r
28 private:\r
29         PCA *pca;\r
30         fvec mean;\r
31         fvec minValues, maxValues;\r
32         ivec labels;\r
33         std::vector<fvec> samples;\r
34         std::vector<fvec> results;\r
35         int kernelType;\r
36         int kernelDegree;\r
37         float kernelGamma;\r
38     float kernelOffset;\r
39 public:\r
40         std::vector<fvec> Project(std::vector<fvec> samples);\r
41     std::vector<fvec> GetSamples(){return samples;}\r
42     std::vector<fvec> GetResults(){return results;}\r
43     ivec GetLabels(){return labels;}\r
44 \r
45         ClassifierKPCA();\r
46         void Train(std::vector< fvec > samples, ivec labels);\r
47     float Test(const fvec &sample) const ;\r
48     float Test(const fVec &sample) const ;\r
49     const char *GetInfoString() const ;\r
50     void SetParams(int kernelType, int kernelDegree, float kernelGamma, float kernelOffset);\r
51 };\r
52 \r
53 #endif // _CLASSIFIER_KPCA_H_\r