SYNOPSIS
Public Member Functions
CF (arma::mat &data, const size_t numUsersForSimilarity=5, const size_t rank=0)
Initialize the CF object.
const arma::sp_mat & CleanedData () const
Get the cleaned data matrix.
const arma::mat & Data () const
Get the data matrix.
void Factorizer (const FactorizerType &f)
Sets factorizer for NMF.
void GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations)
Generates the given number of recommendations for all users.
void GetRecommendations (const size_t numRecs, arma::Mat< size_t > &recommendations, arma::Col< size_t > &users)
Generates the given number of recommendations for the specified users.
const arma::mat & H () const
Get the Item Matrix.
void NumUsersForSimilarity (const size_t num)
Sets number of users for calculating similarity.
size_t NumUsersForSimilarity () const
Gets number of users for calculating similarity.
void Rank (const size_t rankValue)
Sets rank parameter for matrix factorization.
size_t Rank () const
Gets rank parameter for matrix factorization.
const arma::mat & Rating () const
Get the Rating Matrix.
std::string ToString () const
Returns a string representation of this object.
const arma::mat & W () const
Get the User Matrix.
Private Member Functions
void CleanData ()
Converts the User, Item, Value Matrix to User-Item Table.
void InsertNeighbor (const size_t queryIndex, const size_t pos, const size_t neighbor, const double value, arma::Mat< size_t > &recommendations, arma::mat &values) const
Helper function to insert a point into the recommendation matrices.
Private Attributes
arma::sp_mat cleanedData
Cleaned data matrix.
arma::mat data
Initial data matrix.
FactorizerType factorizer
Instantiated factorizer object.
arma::mat h
Item matrix.
size_t numUsersForSimilarity
Number of users for similarity.
size_t rank
Rank used for matrix factorization.
arma::mat rating
Rating matrix.
arma::mat w
User matrix.
Detailed Description
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>>class mlpack::cf::CF< FactorizerType >
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; // (user, item, rating) table extern arma::Col<size_t> users; // users seeking recommendations arma::Mat<size_t> recommendations; // Recommendations CF<> cf(data); // Default options. // Generate 10 recommendations for all users. cf.GetRecommendations(10, recommendations); // Generate 10 recommendations for specified users. 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 76 of file cf.hpp.
Constructor & Destructor Documentation
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> mlpack::cf::CF< FactorizerType >::CF (arma::mat &data, const size_tnumUsersForSimilarity = 5, const size_trank = 0)
Initialize the CF object. Store a reference to the data that we will be using. 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.
Parameters:
-
data Initial (user, item, rating) matrix.
numUsersForSimilarity Size of the neighborhood.
rank Rank parameter for matrix factorization.
Member Function Documentation
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::CleanData () [private]
Converts the User, Item, Value Matrix to User-Item Table.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> const arma::sp_mat& mlpack::cf::CF< FactorizerType >::CleanedData () const [inline]
Get the cleaned data matrix.
Definition at line 138 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::cleanedData.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> const arma::mat& mlpack::cf::CF< FactorizerType >::Data () const [inline]
Get the data matrix.
Definition at line 136 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::data.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::Factorizer (const FactorizerType &f) [inline]
Sets factorizer for NMF.
Definition at line 124 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::factorizer.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::GetRecommendations (const size_tnumRecs, arma::Mat< size_t > &recommendations)
Generates the given number of recommendations for all users.
Parameters:
-
numRecs Number of Recommendations
recommendations Matrix to save recommendations into.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::GetRecommendations (const size_tnumRecs, arma::Mat< size_t > &recommendations, arma::Col< size_t > &users)
Generates the given number of recommendations for the specified users.
Parameters:
-
numRecs Number of Recommendations
recommendations Matrix to save recommendations
users Users for which recommendations are to be generated
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> const arma::mat& mlpack::cf::CF< FactorizerType >::H () const [inline]
Get the Item Matrix.
Definition at line 132 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::h.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::InsertNeighbor (const size_tqueryIndex, const size_tpos, const size_tneighbor, const doublevalue, arma::Mat< size_t > &recommendations, arma::mat &values) const [private]
Helper function to insert a point into the recommendation matrices.
Parameters:
-
queryIndex Index of point whose recommendations we are inserting into.
pos Position in list to insert into.
neighbor Index of item being inserted as a recommendation.
value Value of recommendation.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::NumUsersForSimilarity (const size_tnum) [inline]
Sets number of users for calculating similarity.
Definition at line 94 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::numUsersForSimilarity, and mlpack::Log::Warn.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> size_t mlpack::cf::CF< FactorizerType >::NumUsersForSimilarity () const [inline]
Gets number of users for calculating similarity.
Definition at line 106 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::numUsersForSimilarity.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> void mlpack::cf::CF< FactorizerType >::Rank (const size_trankValue) [inline]
Sets rank parameter for matrix factorization.
Definition at line 112 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::rank.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> size_t mlpack::cf::CF< FactorizerType >::Rank () const [inline]
Gets rank parameter for matrix factorization.
Definition at line 118 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::rank.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> const arma::mat& mlpack::cf::CF< FactorizerType >::Rating () const [inline]
Get the Rating Matrix.
Definition at line 134 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::rating.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> std::string mlpack::cf::CF< FactorizerType >::ToString () const
Returns a string representation of this object.
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> const arma::mat& mlpack::cf::CF< FactorizerType >::W () const [inline]
Get the User Matrix.
Definition at line 130 of file cf.hpp.
References mlpack::cf::CF< FactorizerType >::w.
Member Data Documentation
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> arma::sp_mat mlpack::cf::CF< FactorizerType >::cleanedData [private]
Cleaned data matrix.
Definition at line 181 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::CleanedData().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> arma::mat mlpack::cf::CF< FactorizerType >::data [private]
Initial data matrix.
Definition at line 167 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Data().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> FactorizerType mlpack::cf::CF< FactorizerType >::factorizer [private]
Instantiated factorizer object.
Definition at line 173 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Factorizer().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> arma::mat mlpack::cf::CF< FactorizerType >::h [private]
Item matrix.
Definition at line 177 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::H().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> size_t mlpack::cf::CF< FactorizerType >::numUsersForSimilarity [private]
Number of users for similarity.
Definition at line 169 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::NumUsersForSimilarity().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> size_t mlpack::cf::CF< FactorizerType >::rank [private]
Rank used for matrix factorization.
Definition at line 171 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Rank().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> arma::mat mlpack::cf::CF< FactorizerType >::rating [private]
Rating matrix.
Definition at line 179 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::Rating().
template<typename FactorizerType = amf::AMF<amf::SimpleResidueTermination, amf::RandomInitialization, amf::NMFALSUpdate>> arma::mat mlpack::cf::CF< FactorizerType >::w [private]
User matrix.
Definition at line 175 of file cf.hpp.
Referenced by mlpack::cf::CF< FactorizerType >::W().
Author
Generated automatically by Doxygen for MLPACK from the source code.