regularized_svd.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_METHODS_REGULARIZED_SVD_REGULARIZED_SVD_HPP
14 #define MLPACK_METHODS_REGULARIZED_SVD_REGULARIZED_SVD_HPP
15 
16 #include <mlpack/prereqs.hpp>
17 #include <ensmallen.hpp>
18 #include <mlpack/methods/cf/cf.hpp>
19 
21 
22 namespace mlpack {
23 namespace svd {
24 
57 template<typename OptimizerType = ens::StandardSGD>
59 {
60  public:
71  RegularizedSVD(const size_t iterations = 10,
72  const double alpha = 0.01,
73  const double lambda = 0.02);
74 
83  void Apply(const arma::mat& data,
84  const size_t rank,
85  arma::mat& u,
86  arma::mat& v);
87 
88  private:
90  size_t iterations;
92  double alpha;
94  double lambda;
95 };
96 
97 } // namespace svd
98 } // namespace mlpack
99 
100 // Include implementation.
101 #include "regularized_svd_impl.hpp"
102 
103 #endif
Regularized SVD is a matrix factorization technique that seeks to reduce the error on the training se...
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
constexpr auto data(Container const &container) noexcept -> decltype(container.data())
Definition: iterator.hpp:79
RegularizedSVD(const size_t iterations=10, const double alpha=0.01, const double lambda=0.02)
Constructor for Regularized SVD.
void Apply(const arma::mat &data, const size_t rank, arma::mat &u, arma::mat &v)
Obtains the user and item matrices using the provided data and rank.