Skip to content

Commit

Permalink
Merge pull request #1123 from votjakovr/develop
Browse files Browse the repository at this point in the history
Added check of standard deviation (m_sigma) in GP likelihoods
  • Loading branch information
Soeren Sonnenburg committed May 23, 2013
2 parents a56b061 + 173ff9a commit f3f55ee
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 37 deletions.
4 changes: 3 additions & 1 deletion src/shogun/regression/gp/GaussianLikelihood.cpp
Expand Up @@ -24,13 +24,15 @@ CGaussianLikelihood::CGaussianLikelihood() : CLikelihoodModel()

CGaussianLikelihood::CGaussianLikelihood(float64_t sigma) : CLikelihoodModel()
{
REQUIRE(sigma>0.0, "%s::CGaussianLikelihood(): Standard deviation "
"must be greater than zero\n", get_name())
init();
m_sigma=sigma;
}

void CGaussianLikelihood::init()
{
m_sigma = 1;
m_sigma=1.0;
SG_ADD(&m_sigma, "sigma", "Observation Noise.", MS_AVAILABLE);
}

Expand Down
17 changes: 10 additions & 7 deletions src/shogun/regression/gp/GaussianLikelihood.h
Expand Up @@ -25,7 +25,6 @@ namespace shogun
*/
class CGaussianLikelihood: public CLikelihoodModel
{

public:
/** Constructor*/
CGaussianLikelihood();
Expand All @@ -48,13 +47,18 @@ class CGaussianLikelihood: public CLikelihoodModel
*
* @return noise variance
*/
float64_t get_sigma() {return m_sigma;}
float64_t get_sigma() { return m_sigma; }

/** Sets the noise variance
*
* @param s noise variance
* @param sigma noise variance
*/
void set_sigma(float64_t s) {m_sigma = s;}
void set_sigma(float64_t sigma)
{
REQUIRE(sigma>0.0, "%s::set_sigma(): Standard deviation "
"must be greater than zero\n", get_name())
m_sigma=sigma;
}

/** helper method used to specialize a base class instance
*
Expand All @@ -81,7 +85,7 @@ class CGaussianLikelihood: public CLikelihoodModel
*
* @return model type Gaussian
*/
virtual ELikelihoodModelType get_model_type() {return LT_GAUSSIAN;}
virtual ELikelihoodModelType get_model_type() { return LT_GAUSSIAN; }

/** get log likelihood log(P(y|f)) with respect
* to location f
Expand Down Expand Up @@ -164,10 +168,9 @@ class CGaussianLikelihood: public CLikelihoodModel
/** Observation noise sigma */
float64_t m_sigma;

/*Initialize function*/
/** Initialize function */
void init();
};

}
#endif /* HAVE_EIGEN3 */
#endif /* CGAUSSIANLIKELIHOOD_H_ */
9 changes: 1 addition & 8 deletions src/shogun/regression/gp/LikelihoodModel.h
Expand Up @@ -14,7 +14,6 @@
#include <shogun/base/SGObject.h>
#include <shogun/labels/RegressionLabels.h>


namespace shogun
{

Expand All @@ -26,7 +25,6 @@ enum ELikelihoodModelType
LT_STUDENTST = 20
};


/** @brief The Likelihood Model base class.
*
* The Likelihood model computes approximately the
Expand All @@ -36,9 +34,7 @@ enum ELikelihoodModelType
*/
class CLikelihoodModel : public CSGObject
{

public:

/*Constructor*/
CLikelihoodModel();

Expand Down Expand Up @@ -70,7 +66,7 @@ class CLikelihoodModel : public CSGObject
*
* @return model type NONE
*/
virtual ELikelihoodModelType get_model_type() {return LT_NONE;}
virtual ELikelihoodModelType get_model_type() { return LT_NONE; }

/** get log likelihood log(P(y|f)) with respect
* to location f
Expand All @@ -83,7 +79,6 @@ class CLikelihoodModel : public CSGObject
virtual float64_t get_log_probability_f(CRegressionLabels* labels,
SGVector<float64_t> f) = 0;


/** get derivative of log likelihood log(P(y|f)) with respect
* to location f
*
Expand Down Expand Up @@ -150,8 +145,6 @@ class CLikelihoodModel : public CSGObject
virtual SGVector<float64_t> get_third_derivative(CRegressionLabels* labels,
TParameter* param, CSGObject* obj, SGVector<float64_t> function) = 0;
};


}
#endif /* HAVE_EIGEN3 */
#endif /* CLIKELIHOODMODEL_H_ */
19 changes: 11 additions & 8 deletions src/shogun/regression/gp/StudentsTLikelihood.cpp
Expand Up @@ -25,21 +25,24 @@ using namespace Eigen;

CStudentsTLikelihood::CStudentsTLikelihood() : CLikelihoodModel()
{
init(0.01, 3);
init();
}

CStudentsTLikelihood::CStudentsTLikelihood(float64_t sigma, float64_t df) : CLikelihoodModel()
{
init(sigma, df);
}

void CStudentsTLikelihood::init(float64_t sigma, float64_t df)
{
REQUIRE(df>1.0, "%s::init(): Number of degrees of "
REQUIRE(sigma>0.0, "%s::CStudentsTLikelihood(): Standard deviation "
"must be greater than zero\n", get_name())
REQUIRE(df>1.0, "%s::CStudentsTLikelihood(): Number of degrees of "
"freedom must be greater than one\n", get_name())
init();
m_sigma=sigma;
m_df=df;
m_sigma = sigma;
}

void CStudentsTLikelihood::init()
{
m_sigma=1.0;
m_df=3.0;
SG_ADD(&m_df, "df", "Degrees of Freedom.", MS_AVAILABLE);
SG_ADD(&m_sigma, "sigma", "Observation Noise.", MS_AVAILABLE);
}
Expand Down
25 changes: 12 additions & 13 deletions src/shogun/regression/gp/StudentsTLikelihood.h
Expand Up @@ -27,9 +27,7 @@ namespace shogun
*/
class CStudentsTLikelihood: public CLikelihoodModel
{

public:

/** default constructor */
CStudentsTLikelihood();

Expand All @@ -54,19 +52,24 @@ class CStudentsTLikelihood: public CLikelihoodModel
*
* @return noise variance
*/
float64_t get_sigma() {return m_sigma;}
float64_t get_sigma() { return m_sigma; }

/** Sets the noise variance
*
* @param s noise variance
* @param sigma noise variance
*/
void set_sigma(float64_t s) {m_sigma = s;}
void set_sigma(float64_t sigma)
{
REQUIRE(sigma>0.0, "%s::set_sigma(): Standard deviation "
"must be greater than zero\n", get_name())
m_sigma=sigma;
}

/** get degrees of freedom
*
* @return degrees of freedom
*/
float64_t get_degrees_freedom() {return m_df;}
float64_t get_degrees_freedom() { return m_df; }

/** sets degrees of freedom
*
Expand Down Expand Up @@ -104,8 +107,7 @@ class CStudentsTLikelihood: public CLikelihoodModel
*
* @return model type Student's T
*/
virtual ELikelihoodModelType get_model_type() {return LT_STUDENTST;}

virtual ELikelihoodModelType get_model_type() { return LT_STUDENTST; }

/** get log likelihood log(P(y|f)) with respect
* to location f
Expand All @@ -118,7 +120,6 @@ class CStudentsTLikelihood: public CLikelihoodModel
virtual float64_t get_log_probability_f(CRegressionLabels* labels,
SGVector<float64_t> f);


/** get derivative of log likelihood log(P(y|f)) with respect
* to location f
*
Expand Down Expand Up @@ -192,11 +193,9 @@ class CStudentsTLikelihood: public CLikelihoodModel
/** Degrees of Freedom */
float64_t m_df;

/** Initialize function*/
void init(float64_t sigma, float64_t df);

/** Initialize function */
void init();
};

}
#endif /* HAVE_EIGEN3 */
#endif /* CStudentsTLIKELIHOOD_H_ */

0 comments on commit f3f55ee

Please sign in to comment.