logistic_regression.hpp
Go to the documentation of this file.00001
00023 #ifndef __MLPACK_METHODS_LOGISTIC_REGRESSION_LOGISTIC_REGRESSION_HPP
00024 #define __MLPACK_METHODS_LOGISTIC_REGRESSION_LOGISTIC_REGRESSION_HPP
00025
00026 #include <mlpack/core.hpp>
00027 #include <mlpack/core/optimizers/lbfgs/lbfgs.hpp>
00028
00029 #include "logistic_regression_function.hpp"
00030
00031 namespace mlpack {
00032 namespace regression {
00033
00034 template<
00035 template<typename> class OptimizerType = mlpack::optimization::L_BFGS
00036 >
00037 class LogisticRegression
00038 {
00039 public:
00050 LogisticRegression(const arma::mat& predictors,
00051 const arma::vec& responses,
00052 const double lambda = 0);
00053
00065 LogisticRegression(const arma::mat& predictors,
00066 const arma::vec& responses,
00067 const arma::mat& initialPoint,
00068 const double lambda = 0);
00069
00081 LogisticRegression(OptimizerType<LogisticRegressionFunction>& optimizer);
00082
00092 LogisticRegression(const arma::vec& parameters, const double lambda = 0);
00093
00095 const arma::vec& Parameters() const { return parameters; }
00097 arma::vec& Parameters() { return parameters; }
00098
00100 const double& Lambda() const { return lambda; }
00102 double& Lambda() { return lambda; }
00103
00115 void Predict(const arma::mat& predictors,
00116 arma::vec& responses,
00117 const double decisionBoundary = 0.5) const;
00118
00133 double ComputeAccuracy(const arma::mat& predictors,
00134 const arma::vec& responses,
00135 const double decisionBoundary = 0.5) const;
00136
00145 double ComputeError(const arma::mat& predictors,
00146 const arma::vec& responses) const;
00147
00148 private:
00150 arma::vec parameters;
00152 double lambda;
00153 };
00154
00155 };
00156 };
00157
00158
00159 #include "logistic_regression_impl.hpp"
00160
00161 #endif // __MLPACK_METHODS_LOGISTIC_REGRESSION_LOGISTIC_REGRESSION_HPP