|
| CF (const size_t numUsersForSimilarity=5, const size_t rank=0) |
| Initialize the CF object without performing any factorization. More...
|
|
template<typename FactorizerType = amf::NMFALSFactorizer> |
| CF (const arma::mat &data, FactorizerType factorizer=FactorizerType(), const size_t numUsersForSimilarity=5, const size_t rank=0) |
| Initialize the CF object using an instantiated factorizer, immediately factorizing the given data to create a model. More...
|
|
template<typename FactorizerType = amf::NMFALSFactorizer> |
| CF (const arma::sp_mat &data, FactorizerType factorizer=FactorizerType(), const size_t numUsersForSimilarity=5, const size_t rank=0, const typename std::enable_if_t< !FactorizerTraits< FactorizerType >::UsesCoordinateList > *=0) |
| Initialize the CF object using an instantiated factorizer, immediately factorizing the given data to create a model. More...
|
|
const arma::sp_mat & | CleanedData () const |
| Get the cleaned data matrix. More...
|
|
void | GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations) |
| Generates the given number of recommendations for all users. More...
|
|
void | GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations, const arma::Col< size_t > &users) |
| Generates the given number of recommendations for the specified users. More...
|
|
const arma::mat & | H () const |
| Get the Item Matrix. More...
|
|
void | NumUsersForSimilarity (const size_t num) |
| Sets number of users for calculating similarity. More...
|
|
size_t | NumUsersForSimilarity () const |
| Gets number of users for calculating similarity. More...
|
|
double | Predict (const size_t user, const size_t item) const |
| Predict the rating of an item by a particular user. More...
|
|
void | Predict (const arma::Mat< size_t > &combinations, arma::vec &predictions) const |
| Predict ratings for each user-item combination in the given coordinate list matrix. More...
|
|
void | Rank (const size_t rankValue) |
| Sets rank parameter for matrix factorization. More...
|
|
size_t | Rank () const |
| Gets rank parameter for matrix factorization. More...
|
|
template<typename Archive > |
void | Serialize (Archive &ar, const unsigned int) |
| Serialize the CF model to the given archive. More...
|
|
template<typename FactorizerType = amf::NMFALSFactorizer> |
void | Train (const arma::mat &data, FactorizerType factorizer=FactorizerType()) |
| Train the CF model (i.e. More...
|
|
template<typename FactorizerType = amf::NMFALSFactorizer> |
void | Train (const arma::sp_mat &data, FactorizerType factorizer=FactorizerType(), const typename std::enable_if_t< !FactorizerTraits< FactorizerType >::UsesCoordinateList > *=0) |
| Train the CF model (i.e. More...
|
|
const arma::mat & | W () const |
| Get the User Matrix. More...
|
|
This class implements Collaborative Filtering (CF).
This implementation presently supports Alternating Least Squares (ALS) for collaborative filtering.
A simple example of how to run Collaborative Filtering is shown below.
extern arma::mat data;
extern arma::Col<size_t> users;
arma::Mat<size_t> recommendations;
cf.GetRecommendations(10, recommendations);
cf.GetRecommendations(10, recommendations, users);
The data matrix is a (user, item, rating) table. Each column in the matrix should have three rows. The first represents the user; the second represents the item; and the third represents the rating. The user and item, while they are in a matrix that holds doubles, should hold integer (or size_t) values. The user and item indices are assumed to start at 0.
- Template Parameters
-
FactorizerType | The type of matrix factorization to use to decompose the rating matrix (a W and H matrix). This must implement the method Apply(arma::sp_mat& data, size_t rank, arma::mat& W, arma::mat& H). |
Definition at line 80 of file cf.hpp.
template<typename FactorizerType = amf::NMFALSFactorizer>
mlpack::cf::CF::CF |
( |
const arma::mat & |
data, |
|
|
FactorizerType |
factorizer = FactorizerType() , |
|
|
const size_t |
numUsersForSimilarity = 5 , |
|
|
const size_t |
rank = 0 |
|
) |
| |
Initialize the CF object using an instantiated factorizer, immediately factorizing the given data to create a model.
There are parameters that can be set; default values are provided for each of them. If the rank is left unset (or is set to 0), a simple density-based heuristic will be used to choose a rank.
The provided dataset should be a coordinate list; that is, a 3-row matrix where each column corresponds to a (user, item, rating) entry in the matrix.
- Parameters
-
data | Data matrix: coordinate list or dense matrix. |
factorizer | Instantiated factorizer object. |
numUsersForSimilarity | Size of the neighborhood. |
rank | Rank parameter for matrix factorization. |
template<typename FactorizerType = amf::NMFALSFactorizer>
mlpack::cf::CF::CF |
( |
const arma::sp_mat & |
data, |
|
|
FactorizerType |
factorizer = FactorizerType() , |
|
|
const size_t |
numUsersForSimilarity = 5 , |
|
|
const size_t |
rank = 0 , |
|
|
const typename std::enable_if_t< !FactorizerTraits< FactorizerType >::UsesCoordinateList > * |
= 0 |
|
) |
| |
Initialize the CF object using an instantiated factorizer, immediately factorizing the given data to create a model.
There are parameters that can be set; default values are provided for each of them. If the rank is left unset (or is set to 0), a simple density-based heuristic will be used to choose a rank. Data will be considered in the format of items vs. users and will be passed directly to the factorizer without cleaning. This overload of the constructor will only be available if the factorizer does not use a coordinate list (i.e. if UsesCoordinateList is false).
The U and T template parameters are for SFINAE, so that this overload is only available when the FactorizerType uses a coordinate list.
- Parameters
-
data | Sparse matrix data. |
factorizer | Instantiated factorizer object. |
numUsersForSimilarity | Size of the neighborhood. |
rank | Rank parameter for matrix factorization. |