SHOGUN  v2.0.0
Gaussian.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or modify
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Written (W) 2011 Alesis Novik
8  * Copyright (C) 2011 Berlin Institute of Technology and Max-Planck-Society
9  */
10
11 #ifndef _GAUSSIAN_H__
12 #define _GAUSSIAN_H__
13
14 #include <shogun/lib/config.h>
15
16 #ifdef HAVE_LAPACK
17
20 #include <shogun/lib/common.h>
23
24 namespace shogun
25 {
26 class CDotFeatures;
27
30 {
37 };
38
46 class CGaussian : public CDistribution
47 {
48  public:
50  CGaussian();
58  virtual ~CGaussian();
59
61  void init();
62
69  virtual bool train(CFeatures* data=NULL);
70
75  virtual int32_t get_num_model_parameters();
76
82  virtual float64_t get_log_model_parameter(int32_t num_param);
83
91  int32_t num_param, int32_t num_example);
92
100  virtual float64_t get_log_likelihood_example(int32_t num_example);
101
108  {
109  return CMath::exp(compute_log_PDF(point));
110  }
111
118
123  virtual SGVector<float64_t> get_mean();
124
129  virtual void set_mean(const SGVector<float64_t> mean);
130
135  virtual SGMatrix<float64_t> get_cov();
136
143  virtual void set_cov(SGMatrix<float64_t> cov);
144
150  {
151  return m_cov_type;
152  }
153
160  inline void set_cov_type(ECovType cov_type)
161  {
162  m_cov_type = cov_type;
163  }
164
170  {
171  return m_d;
172  }
173
178  void set_d(const SGVector<float64_t> d);
179
185  {
186  return m_u;
187  }
188
193  inline void set_u(SGMatrix<float64_t> u)
194  {
195  m_u = u;
196  }
197
203
205  inline virtual const char* get_name() const { return "Gaussian"; }
206
207  private:
209  void register_params();
210
215  void decompose_cov(SGMatrix<float64_t> cov);
216
217  protected:
228 };
229 }
230 #endif //HAVE_LAPACK
231 #endif //_GAUSSIAN_H__

SHOGUN Machine Learning Toolbox - Documentation