cf.hpp

Go to the documentation of this file.
00001 
00025 #ifndef __MLPACK_METHODS_CF_CF_HPP
00026 #define __MLPACK_METHODS_CF_CF_HPP
00027 
00028 #include <mlpack/core.hpp>
00029 #include <mlpack/methods/neighbor_search/neighbor_search.hpp>
00030 #include <set>
00031 #include <map>
00032 #include <iostream>
00033 
00034 namespace mlpack {
00035 namespace cf {
00036 
00068 class CF
00069 {
00070  public:
00079   CF(const size_t numRecs,const size_t numUsersForSimilarity,
00080      arma::mat& data);
00081 
00089   CF(const size_t numRecs, arma::mat& data);
00090 
00097   CF(arma::mat& data);
00098 
00100   void NumRecs(size_t recs)
00101   {
00102     if (recs < 1)
00103     {
00104       Log::Warn << "CF::NumRecs(): invalid value (< 1) "
00105           "ignored." << std::endl;
00106       return;
00107     }
00108     this->numRecs = recs;
00109   }
00110 
00112   size_t NumRecs()
00113   {
00114     return numRecs;
00115   }
00116 
00118   void NumUsersForSimilarity(size_t num)
00119   {
00120     if (num < 1)
00121     {
00122       Log::Warn << "CF::NumUsersForSimilarity(): invalid value (< 1) "
00123           "ignored." << std::endl;
00124       return;
00125     }
00126     this->numUsersForSimilarity = num;
00127   }
00128 
00130   size_t NumUsersForSimilarity()
00131   {
00132     return numUsersForSimilarity;
00133   }
00134 
00136   const arma::mat& W() const { return w; }
00138   const arma::mat& H() const { return h; }
00140   const arma::mat& Rating() const { return rating; }
00142   const arma::mat& Data() const { return data; }
00144   const arma::sp_mat& CleanedData() const { return cleanedData; }
00145 
00151   void GetRecommendations(arma::Mat<size_t>& recommendations);
00152 
00159   void GetRecommendations(arma::Mat<size_t>& recommendations,
00160                           arma::Col<size_t>& users);
00161 
00169   void GetRecommendations(arma::Mat<size_t>& recommendations,
00170                           arma::Col<size_t>& users, size_t num);
00171 
00181   void GetRecommendations(arma::Mat<size_t>& recommendations,
00182                           arma::Col<size_t>& users, size_t num,
00183                           size_t neighbours);
00184 
00185  private:
00187   size_t numRecs;
00189   size_t numUsersForSimilarity;
00191   arma::mat w;
00193   arma::mat h;
00195   arma::mat rating;
00197   arma::mat data;
00199   arma::sp_mat cleanedData;
00201   void CleanData();
00202 
00212   void InsertNeighbor(const size_t queryIndex,
00213                       const size_t pos,
00214                       const size_t neighbor,
00215                       const double value,
00216                       arma::Mat<size_t>& recommendations,
00217                       arma::mat& values) const;
00218 
00219 }; // class CF
00220 
00221 }; // namespace cf
00222 }; // namespace mlpack
00223 
00224 #endif

Generated on 29 Sep 2016 for MLPACK by  doxygen 1.6.1