regression_distribution.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_CORE_DISTRIBUTIONS_REGRESSION_DISTRIBUTION_HPP
13 #define MLPACK_CORE_DISTRIBUTIONS_REGRESSION_DISTRIBUTION_HPP
14 
15 #include <mlpack/prereqs.hpp>
18 
19 namespace mlpack {
20 namespace distribution {
21 
31 {
32  private:
37 
38  public:
42  RegressionDistribution() { /* nothing to do */ }
43 
51  mlpack_deprecated RegressionDistribution(const arma::mat& predictors,
52  const arma::vec& responses) :
53  RegressionDistribution(predictors, arma::rowvec(responses.t()))
54  {}
55 
63  RegressionDistribution(const arma::mat& predictors,
64  const arma::rowvec& responses)
65  {
66  rf.Train(predictors, responses);
67  err = GaussianDistribution(1);
68  arma::mat cov(1, 1);
69  cov(0, 0) = rf.ComputeError(predictors, responses);
70  err.Covariance(std::move(cov));
71  }
72 
76  template<typename Archive>
77  void serialize(Archive& ar, const unsigned int /* version */)
78  {
79  ar & BOOST_SERIALIZATION_NVP(rf);
80  ar & BOOST_SERIALIZATION_NVP(err);
81  }
82 
84  const regression::LinearRegression& Rf() const { return rf; }
86  regression::LinearRegression& Rf() { return rf; }
87 
89  const GaussianDistribution& Err() const { return err; }
91  GaussianDistribution& Err() { return err; }
92 
98  void Train(const arma::mat& observations);
99 
105  mlpack_deprecated void Train(const arma::mat& observations,
106  const arma::vec& weights);
107 
113  void Train(const arma::mat& observations, const arma::rowvec& weights);
114 
120  double Probability(const arma::vec& observation) const;
121 
127  double LogProbability(const arma::vec& observation) const {
128  return log(Probability(observation));
129  }
130 
137  mlpack_deprecated void Predict(const arma::mat& points,
138  arma::vec& predictions) const;
139 
146  void Predict(const arma::mat& points, arma::rowvec& predictions) const;
147 
149  const arma::vec& Parameters() const { return rf.Parameters(); }
150 
152  size_t Dimensionality() const { return rf.Parameters().n_elem; }
153 };
154 
155 
156 } // namespace distribution
157 } // namespace mlpack
158 
159 #endif
A single multivariate Gaussian distribution.
void Train(const arma::mat &observations)
Estimate the Gaussian distribution directly from the given observations.
.hpp
Definition: add_to_po.hpp:21
A simple linear regression algorithm using ordinary least squares.
The core includes that mlpack expects; standard C++ includes and Armadillo.
mlpack_deprecated void Predict(const arma::mat &points, arma::vec &predictions) const
Calculate y_i for each data point in points.
#define mlpack_deprecated
Definition: deprecated.hpp:22
void Train(const arma::mat &predictors, const arma::rowvec &responses, const bool intercept=true)
Train the LinearRegression model on the given data.
RegressionDistribution(const arma::mat &predictors, const arma::rowvec &responses)
Create a Conditional Gaussian distribution with conditional mean function obtained by running Regress...
double LogProbability(const arma::vec &observation) const
Evaluate log probability density function of given observation.
const arma::vec & Parameters() const
Return the parameters (the b vector).
mlpack_deprecated RegressionDistribution(const arma::mat &predictors, const arma::vec &responses)
Create a Conditional Gaussian distribution with conditional mean function obtained by running Regress...
RegressionDistribution()
Default constructor, which creates a Gaussian with zero dimension.
size_t Dimensionality() const
Return the dimensionality.
void serialize(Archive &ar, const unsigned int)
Serialize the distribution.
A class that represents a univariate conditionally Gaussian distribution.
const GaussianDistribution & Err() const
Return error distribution.
GaussianDistribution & Err()
Modify error distribution.
double ComputeError(const arma::mat &points, const arma::rowvec &responses) const
Calculate the L2 squared error on the given predictors and responses using this linear regression mod...
const regression::LinearRegression & Rf() const
Return regression function.
const arma::mat & Covariance() const
Return the covariance matrix.
double Probability(const arma::vec &observation) const
Evaluate probability density function of given observation.
const arma::vec & Parameters() const
Return the parameters (the b vector).
regression::LinearRegression & Rf()
Modify regression function.