|
template<typename MatType > |
| CFType (const MatType &data, const DecompositionPolicy &decomposition=DecompositionPolicy(), const size_t numUsersForSimilarity=5, const size_t rank=0, const size_t maxIterations=1000, const double minResidue=1e-5, const bool mit=false) |
| Initialize the CFType object using any decomposition method, immediately factorizing the given data to create a model. More...
|
|
| CFType (const size_t numUsersForSimilarity=5, const size_t rank=0) |
| Initialize the CFType object without performing any factorization. More...
|
|
const arma::sp_mat & | CleanedData () const |
| Get the cleaned data matrix. More...
|
|
const DecompositionPolicy & | Decomposition () const |
| Gets decomposition object. More...
|
|
template<typename NeighborSearchPolicy = EuclideanSearch, typename InterpolationPolicy = AverageInterpolation> |
void | GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations) |
| Generates the given number of recommendations for all users. More...
|
|
template<typename NeighborSearchPolicy = EuclideanSearch, typename InterpolationPolicy = AverageInterpolation> |
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 NormalizationType & | Normalization () const |
| Get the normalization object. More...
|
|
size_t | NumUsersForSimilarity () const |
| Gets number of users for calculating similarity. More...
|
|
void | NumUsersForSimilarity (const size_t num) |
| Sets number of users for calculating similarity. More...
|
|
template<typename NeighborSearchPolicy = EuclideanSearch, typename InterpolationPolicy = AverageInterpolation> |
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...
|
|
template<typename NeighborSearchPolicy = EuclideanSearch, typename InterpolationPolicy = AverageInterpolation> |
double | Predict (const size_t user, const size_t item) const |
| Predict the rating of an item by a particular user. More...
|
|
size_t | Rank () const |
| Gets rank parameter for matrix factorization. More...
|
|
void | Rank (const size_t rankValue) |
| Sets rank parameter for matrix factorization. More...
|
|
template<typename Archive > |
void | serialize (Archive &ar, const unsigned int) |
| Serialize the CFType model to the given archive. More...
|
|
void | Train (const arma::mat &data, const DecompositionPolicy &decomposition, const size_t maxIterations=1000, const double minResidue=1e-5, const bool mit=false) |
| Train the CFType model (i.e. More...
|
|
void | Train (const arma::sp_mat &data, const DecompositionPolicy &decomposition, const size_t maxIterations=1000, const double minResidue=1e-5, const bool mit=false) |
| Train the CFType model (i.e. More...
|
|
template<typename DecompositionPolicy = NMFPolicy, typename NormalizationType = NoNormalization>
class mlpack::cf::CFType< DecompositionPolicy, NormalizationType >
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;
CFType<> cf(data);
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
-
DecompositionPolicy | The policy used to decompose the rating matrix. It also provides methods to compute prediction and neighborhood. |
NormalizationType | The type of normalization performed on raw data. Data is normalized before calling Train() method. Predicted rating is denormalized before return. |
Definition at line 70 of file cf.hpp.
CFType |
( |
const MatType & |
data, |
|
|
const DecompositionPolicy & |
decomposition = DecompositionPolicy() , |
|
|
const size_t |
numUsersForSimilarity = 5 , |
|
|
const size_t |
rank = 0 , |
|
|
const size_t |
maxIterations = 1000 , |
|
|
const double |
minResidue = 1e-5 , |
|
|
const bool |
mit = false |
|
) |
| |
Initialize the CFType object using any decomposition method, 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 can be a coordinate list; that is, a 3-row matrix where each column corresponds to a (user, item, rating) entry in the matrix or a sparse matrix representing (user, item) table.
- Template Parameters
-
MatType | The type of input matrix, which is expected to be either arma::mat (table of (user, item, rating)) or arma::sp_mat (sparse rating matrix where row is item and column is user). |
- Parameters
-
data | Data matrix: dense matrix (coordinate lists) or sparse matrix(cleaned). |
decomposition | Instantiated DecompositionPolicy object. |
numUsersForSimilarity | Size of the neighborhood. |
rank | Rank parameter for matrix factorization. |
maxIterations | Maximum number of iterations. |
minResidue | Residue required to terminate. |
mit | Whether to terminate only when maxIterations is reached. |