mlpack 3.4.2
logistic_regression.hpp
Go to the documentation of this file.
1
14#ifndef MLPACK_METHODS_LOGISTIC_REGRESSION_LOGISTIC_REGRESSION_HPP
15#define MLPACK_METHODS_LOGISTIC_REGRESSION_LOGISTIC_REGRESSION_HPP
16
17#include <mlpack/prereqs.hpp>
18#include <ensmallen.hpp>
19
21
22namespace mlpack {
23namespace regression {
24
38template<typename MatType = arma::mat>
40{
41 public:
57 LogisticRegression(const MatType& predictors,
58 const arma::Row<size_t>& responses,
59 const double lambda = 0);
60
77 LogisticRegression(const MatType& predictors,
78 const arma::Row<size_t>& responses,
79 const arma::rowvec& initialPoint,
80 const double lambda = 0);
81
92 LogisticRegression(const size_t dimensionality = 0,
93 const double lambda = 0);
94
110 template<typename OptimizerType>
111 LogisticRegression(const MatType& predictors,
112 const arma::Row<size_t>& responses,
113 OptimizerType& optimizer,
114 const double lambda);
115
133 template<typename OptimizerType = ens::L_BFGS, typename... CallbackTypes>
134 double Train(const MatType& predictors,
135 const arma::Row<size_t>& responses,
136 CallbackTypes&&... callbacks);
137
156 template<typename OptimizerType, typename... CallbackTypes>
157 double Train(const MatType& predictors,
158 const arma::Row<size_t>& responses,
159 OptimizerType& optimizer,
160 CallbackTypes&&... callbacks);
161
163 const arma::rowvec& Parameters() const { return parameters; }
165 arma::rowvec& Parameters() { return parameters; }
166
168 const double& Lambda() const { return lambda; }
170 double& Lambda() { return lambda; }
171
183 template<typename VecType>
184 size_t Classify(const VecType& point,
185 const double decisionBoundary = 0.5) const;
186
198 void Classify(const MatType& dataset,
199 arma::Row<size_t>& labels,
200 const double decisionBoundary = 0.5) const;
201
208 void Classify(const MatType& dataset,
209 arma::mat& probabilities) const;
210
225 double ComputeAccuracy(const MatType& predictors,
226 const arma::Row<size_t>& responses,
227 const double decisionBoundary = 0.5) const;
228
237 double ComputeError(const MatType& predictors,
238 const arma::Row<size_t>& responses) const;
239
241 template<typename Archive>
242 void serialize(Archive& ar, const unsigned int /* version */);
243
244 private:
246 arma::rowvec parameters;
248 double lambda;
249};
250
251} // namespace regression
252} // namespace mlpack
253
254// Include implementation.
255#include "logistic_regression_impl.hpp"
256
257#endif // MLPACK_METHODS_LOGISTIC_REGRESSION_LOGISTIC_REGRESSION_HPP
The LogisticRegression class implements an L2-regularized logistic regression model,...
LogisticRegression(const MatType &predictors, const arma::Row< size_t > &responses, const double lambda=0)
Construct the LogisticRegression class with the given labeled training data.
void Classify(const MatType &dataset, arma::Row< size_t > &labels, const double decisionBoundary=0.5) const
Classify the given points, returning the predicted labels for each point.
LogisticRegression(const MatType &predictors, const arma::Row< size_t > &responses, const arma::rowvec &initialPoint, const double lambda=0)
Construct the LogisticRegression class with the given labeled training data.
LogisticRegression(const size_t dimensionality=0, const double lambda=0)
Construct the LogisticRegression class without performing any training.
const double & Lambda() const
Return the lambda value for L2-regularization.
double & Lambda()
Modify the lambda value for L2-regularization.
const arma::rowvec & Parameters() const
Return the parameters (the b vector).
double ComputeAccuracy(const MatType &predictors, const arma::Row< size_t > &responses, const double decisionBoundary=0.5) const
Compute the accuracy of the model on the given predictors and responses, optionally using the given d...
size_t Classify(const VecType &point, const double decisionBoundary=0.5) const
Classify the given point.
arma::rowvec & Parameters()
Modify the parameters (the b vector).
LogisticRegression(const MatType &predictors, const arma::Row< size_t > &responses, OptimizerType &optimizer, const double lambda)
Construct the LogisticRegression class with the given labeled training data.
void Classify(const MatType &dataset, arma::mat &probabilities) const
Classify the given points, returning class probabilities for each point.
double ComputeError(const MatType &predictors, const arma::Row< size_t > &responses) const
Compute the error of the model.
double Train(const MatType &predictors, const arma::Row< size_t > &responses, CallbackTypes &&... callbacks)
Train the LogisticRegression model on the given input data.
double Train(const MatType &predictors, const arma::Row< size_t > &responses, OptimizerType &optimizer, CallbackTypes &&... callbacks)
Train the LogisticRegression model with the given instantiated optimizer.
void serialize(Archive &ar, const unsigned int)
Serialize the model.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.