13 #ifndef MLPACK_METHODS_CF_DECOMPOSITION_POLICIES_BATCH_SVD_METHOD_HPP 14 #define MLPACK_METHODS_CF_DECOMPOSITION_POLICIES_BATCH_SVD_METHOD_HPP 58 template<
typename MatType>
60 const arma::sp_mat& cleanedData,
62 const size_t maxIterations,
63 const double minResidue,
74 svdbatch.Apply(cleanedData, rank, w, h);
83 svdbatch.
Apply(cleanedData, rank, w, h);
93 double GetRating(
const size_t user,
const size_t item)
const 95 double rating = arma::as_scalar(w.row(item) * h.col(user));
107 rating = w * h.col(user);
122 template<
typename NeighborSearchPolicy>
124 const size_t numUsersForSimilarity,
125 arma::Mat<size_t>& neighborhood,
126 arma::mat& similarities)
const 135 arma::mat l = arma::chol(w.t() * w);
136 arma::mat stretchedH = l * h;
139 arma::mat query(stretchedH.n_rows, users.n_elem);
141 for (
size_t i = 0; i < users.n_elem; ++i)
142 query.col(i) = stretchedH.col(users(i));
144 NeighborSearchPolicy neighborSearch(stretchedH);
145 neighborSearch.Search(
146 query, numUsersForSimilarity, neighborhood, similarities);
150 const arma::mat&
W()
const {
return w; }
152 const arma::mat&
H()
const {
return h; }
157 template<
typename Archive>
void GetRatingOfUser(const size_t user, arma::vec &rating) const
Get predicted ratings for a user.
Definition: batch_svd_method.hpp:105
const arma::mat & H() const
Get the User Matrix.
Definition: batch_svd_method.hpp:152
double Apply(const MatType &V, const size_t r, arma::mat &W, arma::mat &H)
Apply Alternating Matrix Factorization to the provided matrix.
Definition: amf_impl.hpp:45
This class implements AMF (alternating matrix factorization) on the given matrix V.
Definition: amf.hpp:78
This initialization rule for AMF simply fills the W and H matrices with uniform random noise in [0...
Definition: random_init.hpp:25
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.
double GetRating(const size_t user, const size_t item) const
Return predicted rating given user ID and item ID.
Definition: batch_svd_method.hpp:93
void serialize(Archive &ar, const uint32_t)
Serialization.
Definition: batch_svd_method.hpp:158
This class implements a simple residue-based termination policy.
Definition: simple_residue_termination.hpp:31
This class implements SVD batch learning with momentum.
Definition: svd_batch_learning.hpp:41
void GetNeighborhood(const arma::Col< size_t > &users, const size_t numUsersForSimilarity, arma::Mat< size_t > &neighborhood, arma::mat &similarities) const
Get the neighborhood and corresponding similarities for a set of users.
Definition: batch_svd_method.hpp:123
const arma::mat & W() const
Get the Item Matrix.
Definition: batch_svd_method.hpp:150
Implementation of the Batch SVD policy to act as a wrapper when accessing Batch SVD from within CFTyp...
Definition: batch_svd_method.hpp:43
This termination policy only terminates when the maximum number of iterations has been reached...
Definition: max_iteration_termination.hpp:23
void Apply(const MatType &, const arma::sp_mat &cleanedData, const size_t rank, const size_t maxIterations, const double minResidue, const bool mit)
Apply Collaborative Filtering to the provided data set using the batch SVD method.
Definition: batch_svd_method.hpp:59