LDA++
MultinomialLogisticRegression.hpp
1 #ifndef _LDAPLUSPLUS_OPTIMIZATION_MULTINOMIAL_LOGISTIC_REGRESSION
2 #define _LDAPLUSPLUS_OPTIMIZATION_MULTINOMIAL_LOGISTIC_REGRESSION
3 
4 #include <cmath>
5 
6 #include <Eigen/Core>
7 
8 namespace ldaplusplus {
9 namespace optimization {
10 
11 
19 template <typename Scalar>
21 {
22  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> MatrixX;
23  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1> VectorX;
24 
25  public:
35  MultinomialLogisticRegression(const MatrixX &X, const Eigen::VectorXi &y, VectorX Cy, Scalar L);
43  MultinomialLogisticRegression(const MatrixX &X, const Eigen::VectorXi &y, Scalar L);
44 
64  Scalar value(const MatrixX &eta) const;
65 
86  void gradient(const MatrixX &eta, Eigen::Ref<MatrixX> grad) const;
87 
88  private:
89  const MatrixX &X_;
90  const Eigen::VectorXi &y_;
91  Scalar L_;
92  VectorX Cy_;
93 };
94 
95 
96 } // namespace optimization
97 } // namespace ldaplusplus
98 #endif // _LDAPLUSPLUS_OPTIMIZATION_MULTINOMIAL_LOGISTIC_REGRESSION
Definition: MultinomialLogisticRegression.hpp:20
MultinomialLogisticRegression(const MatrixX &X, const Eigen::VectorXi &y, VectorX Cy, Scalar L)
Definition: MultinomialLogisticRegression.cpp:30
void gradient(const MatrixX &eta, Eigen::Ref< MatrixX > grad) const
Definition: MultinomialLogisticRegression.cpp:64
Scalar value(const MatrixX &eta) const
Definition: MultinomialLogisticRegression.cpp:40
Definition: Document.hpp:11