def compute(self, verbose=True, metrics=None, verbose_evaluation=True, as_table=False, table_sep='\t'): if verbose: super(MatrixFactorization, self).compute(verbose=verbose) self.init_model() print("training_time:: %4f sec" % timed(self.fit)) if self.extra_info_header is not None: print(self.extra_info_header) search_time = timed(self.search_new_items) replace_time = timed(self.replace_vector_new_item) prediction_time = timed(self.predict) print("search_new_items_time:: %4f sec" % search_time) print("vectors_replacement_time:: %4f sec" % replace_time) print("prediction_time:: %4f sec" % prediction_time) print("total_prediction_time:: %4f sec" % (search_time + replace_time + prediction_time)) print("\n") else: # Execute all in silence without prints super(MatrixFactorization, self).compute(verbose=verbose) self.init_model() self.fit() self.search_new_items() self.replace_vector_new_item() self.predict() self.write_predictions() if self.test_file is not None: return self.evaluate(metrics, verbose_evaluation, as_table=as_table, table_sep=table_sep)
def execute(self, measures=('Prec@5', 'Prec@10', 'NDCG@5', 'NDCG@10', 'MAP@5', 'MAP@10')): print( "[Case Recommender: Item Recommendation > Item Attribute KNN Algorithm]\n" ) print("training data:: ", len(self.train_set['users']), " users and ", len(self.train_set['items']), " items and ", self.train_set['ni'], " interactions | sparsity ", self.train_set['sparsity']) if self.test_file is not None: test_set = ReadFile( self.test_file, space_type=self.space_type).return_information() print("test data:: ", len(self.test_set['users']), " users and ", len(self.test_set['items']), " items and ", (self.test_set['ni']), " interactions | sparsity ", self.test_set['sparsity']) del test_set if self.similarity_matrix_file is not None: print("training time:: ", timed(self.read_matrix), " sec") else: print("training time:: ", timed(self.compute_similarity), " sec") print("prediction_time:: ", timed(self.predict), " sec\n") if self.test_file is not None: self.evaluate(measures)
def compute(self, verbose=True, metrics=None, verbose_evaluation=True, as_table=False, table_sep='\t', n_ranks=None): """ Extends compute method from BaseItemRecommendation. Method to run recommender algorithm :param verbose: Print recommender and database information :type verbose: bool, default True :param metrics: List of evaluation metrics :type metrics: list, default None :param verbose_evaluation: Print the evaluation results :type verbose_evaluation: bool, default True :param as_table: Print the evaluation results as table :type as_table: bool, default False :param table_sep: Delimiter for print results (only work with verbose=True and as_table=True) :type table_sep: str, default '\t' :param n_ranks: List of positions to evaluate the ranking :type n_ranks: list, None """ super(ContentBased, self).compute(verbose=verbose) if verbose: print("training_time:: %4f sec" % timed(self.init_model)) if self.extra_info_header is not None: print(self.extra_info_header) self.create_user_profile() print("prediction_time:: %4f sec" % timed(self.predict)) print('\n') else: self.init_model() self.create_user_profile() self.predict() self.write_ranking() if self.test_file is not None: self.evaluate(metrics, verbose_evaluation, as_table=as_table, table_sep=table_sep, n_ranks=n_ranks)
def compute(self, verbose=True, metrics=None, verbose_evaluation=True, as_table=False, table_sep='\t'): """ Extends compute method from BaseRatingPrediction. Method to run recommender algorithm :param verbose: Print recommender and database information :type verbose: bool, default True :param metrics: List of evaluation measures :type metrics: list, default None :param verbose_evaluation: Print the evaluation results :type verbose_evaluation: bool, default True :param as_table: Print the evaluation results as table :type as_table: bool, default False :param table_sep: Delimiter for print results (only work with verbose=True and as_table=True) :type table_sep: str, default '\t' """ super(MatrixFactorization, self).compute(verbose=verbose) if verbose: self.init_model() print("training_time:: %4f sec" % timed(self.fit)) if self.extra_info_header is not None: print(self.extra_info_header) print("prediction_time:: %4f sec" % timed(self.predict)) print('\n') else: # Execute all in silence without prints self.init_model() self.fit() self.predict() self.write_predictions() if self.test_file is not None: self.evaluate(metrics, verbose_evaluation, as_table=as_table, table_sep=table_sep)
def execute(self): # methods print("[Case Recommender: Rating Prediction > SVD++]\n") print("training data:: ", len(self.train_set['users']), " users and ", len(self.train_set['items']), " items and ", self.train_set['ni'], " interactions | sparsity ", self.train_set['sparsity']) print("test data:: ", len(self.test_set['users']), " users and ", len(self.test_set['items']), " items and ", (self.test_set['ni']), " interactions | sparsity ", self.test_set['sparsity']) print("training time:: ", timed(self.train_model), " sec") print("\nprediction_time:: ", timed(self.predict), " sec\n") self.evaluate(self.predictions)
def init_model(self): super(ItemMSMF, self).init_model() if self.verbose: print("\nread_similarity_matrix_time:: %4f sec" % timed(self.fill_similarity_matrix)) else: self.fill_similarity_matrix()
def execute(self): print("[Case Recommender: Cross-Fold-Validation Process]\n") print("number of folds:: ", self.n_folds, " write folds in:: ", self.dir_folds) print("total process time:: ", timed(self.divide_dataset), "sec") print("dataset info:: #users: ", len(self.tp['users']), " #items: ", len(self.tp['items']), " #number of interactions: ", self.tp['ni'], " #range of feedback: [", self.tp['min'], "-", self.tp['max'], "]\n")
def compute(self, verbose=True, metrics=None, verbose_evaluation=True, as_table=False, table_sep='\t'): """ Extends compute method from BaseItemRecommendation. Method to run recommender algorithm :param verbose: Print recommender and database information :type verbose: bool, default True :param metrics: List of evaluation measures :type metrics: list, default None :param verbose_evaluation: Print the evaluation results :type verbose_evaluation: bool, default True :param as_table: Print the evaluation results as table :type as_table: bool, default False :param table_sep: Delimiter for print results (only work with verbose=True and as_table=True) :type table_sep: str, default '\t' """ super(MostPopular, self).compute(verbose=verbose) if verbose: print("prediction_time:: %4f sec" % timed(self.predict)) print('\n') else: self.predict() self.write_predictions() if self.test_file is not None: self.evaluate(metrics, verbose_evaluation, as_table=as_table, table_sep=table_sep)
def execute(self): # methods print("[Case Recommender: Rating Prediction > User Algorithm]\n") print("training data:: ", len(self.train_set['users']), " users and ", len(self.train_set['items']), " items and ", self.train_set['ni'], " interactions | sparsity ", self.train_set['sparsity']) print("test data:: ", len(self.test_set['users']), " users and ", len(self.test_set['items']), " items and ", (self.test_set['ni']), " interactions | sparsity ", self.test_set['sparsity']) # training baselines bui self.fill_matrix() print("training time:: ", timed(self.train_baselines), " sec") self.compute_similarity() print("prediction_time:: ", timed(self.predict), " sec\n") self.evaluate(self.predictions)
def execute(self): # methods print("[Case Recommender: Rating Prediction > User NSVD1]\n") print("training data:: ", len(self.train_set['users']), " users and ", len(self.train_set['items']), " items and ", self.train_set['ni'], " interactions | sparsity ", self.train_set['sparsity']) print("test data:: ", len(self.test_set['users']), " users and ", len(self.test_set['items']), " items and ", (self.test_set['ni']), " interactions | sparsity ", self.test_set['sparsity']) print("metadata:: ", len(self.metadata['items']), " users and ", len(self.metadata['metadata']), " metadata and ", self.metadata['ni'], " interactions\n") self._create_factors() if self.batch: print("training time:: ", timed(self.train_batch_model), " sec") else: print("training time:: ", timed(self.train_model), " sec") print("\nprediction_time:: ", timed(self.predict), " sec\n") self.evaluate(self.predictions)
def execute(self): # methods print( "[Case Recommender: Rating Prediction > User Attribute KNN Algorithm]\n" ) print("training data:: ", len(self.train_set['users']), " users and ", len(self.train_set['items']), " items and ", self.train_set['ni'], " interactions") print("test data:: ", len(self.test_set['users']), " users and ", len(self.test_set['items']), " items and ", self.test_set['ni'], " interactions") # training baselines bui print("training time:: ", timed(self.train_baselines), " sec") if self.similarity_matrix_file is not None: print("compute similarity:: ", timed(self.read_matrix), " sec") else: print("compute similarity time:: ", timed(self.compute_similarity), " sec") print("prediction_time:: ", timed(self.predict), " sec\n") self.evaluate(self.predictions)
def execute(self, measures=('Prec@5', 'Prec@10', 'NDCG@5', 'NDCG@10', 'MAP@5', 'MAP@10')): # methods print("[Case Recommender: Item Recommendation > BPR MF Algorithm]\n") print("training data:: ", len(self.train_set['users']), " users and ", len(self.train_set['items']), " items and ", self.train_set['ni'], " interactions | sparsity ", self.train_set['sparsity']) if self.test_file is not None: test_set = ReadFile(self.test_file).return_information() print("test data:: ", len(self.test_set['users']), " users and ", len(self.test_set['items']), " items and ", (self.test_set['ni']), " interactions | sparsity ", self.test_set['sparsity']) del test_set self._create_factors() print("training time:: ", timed(self.train_model), " sec") print("prediction_time:: ", timed(self.predict), " sec\n") if self.test_file is not None: self.evaluate(measures)
def execute(self): print("[Case Recommender: Split Dataset Process]\n") print("number of folds:: ", self.n_folds, " write folds in:: ", self.dir_folds) print("total process time:: ", timed(self.divide_dataset), "sec")