Exemple #1
0
 def get_most_popular(self):
     MostPopular(
         train_file=self.train_file,
         test_file=self.test_file,
         output_file=self.output_file,
         rank_length=self.rank_length,
         sep=self.sep,
         output_sep=self.output_sep).compute(verbose_evaluation=False)
    def generate_recommendation(self):
        self.ranking = []
        for n, train_file in enumerate(self.gb_train_files):
            if self.recommender == 'UserKNN':
                rec = UserKNN(train_file=train_file,
                              similarity_metric=self.similarity_metric,
                              as_binary=True,
                              as_similar_first=False)
                rec.compute(verbose=False, verbose_evaluation=False)
                self.ranking += rec.ranking

            elif self.recommender == 'ItemKNN':
                rec = ItemKNN(train_file=train_file,
                              test_file=self.test_file,
                              similarity_metric=self.similarity_metric,
                              as_binary=True)
                rec.compute(verbose=False, verbose_evaluation=False)
                self.ranking += rec.ranking

            elif self.recommender == 'MostPopular':
                rec = MostPopular(train_file=train_file,
                                  test_file=self.test_file,
                                  as_binary=True)
                rec.compute(verbose=False, verbose_evaluation=False)
                self.ranking += rec.ranking

            elif self.recommender == 'BPRMF':
                rec = BprMF(train_file=train_file,
                            test_file=self.test_file,
                            batch_size=4)
                rec.compute(verbose=False, verbose_evaluation=False)
                self.ranking += rec.ranking
            else:
                raise ValueError(
                    'Error: Recommender not implemented or not exist!')

        self.ranking = sorted(self.ranking, key=lambda x: (x[0], -x[2]))
"""
    Running Most Popular Recommender [Item Recommendation]

    - Cross Validation
    - Simple

"""

from caserec.recommenders.item_recommendation.most_popular import MostPopular
from caserec.utils.cross_validation import CrossValidation

db = '../../../datasets/ml-1m/ratings.csv'
folds_path = '../../../datasets/ml-1m/'

tr = '../../../datasets/ml-1m/folds/0/train.dat'
te = '../../../datasets/ml-1m/folds/0/test.dat'

# Cross Validation
recommender = MostPopular(as_binary=True)

CrossValidation(input_file=db,
                recommender=recommender,
                dir_folds=folds_path,
                header=1,
                k_folds=5).compute()

# Simple
MostPopular(tr, te, as_binary=True).compute()
from caserec.recommenders.item_recommendation.itemknn import ItemKNN
from caserec.recommenders.item_recommendation.most_popular import MostPopular
from caserec.utils.cross_validation import CrossValidation

db = 'u.data'
folds_path = ''

metrics = ('PREC', 'RECALL', 'NDCG', 'MAP')

recommender = ItemKNN()
CrossValidation(input_file=db,
                recommender=recommender,
                dir_folds=folds_path,
                header=1,
                k_folds=5).compute(metrics=metrics)

recommender = MostPopular()
CrossValidation(input_file=db,
                recommender=recommender,
                dir_folds=folds_path,
                header=1,
                k_folds=5).compute(metrics=metrics)