""" simple code to evaluate a recommender, you need a sparse matrix of shape (10k,2,2kk) """ from utils.datareader import Datareader from utils.evaluator import Evaluator import utils.post_processing as post import scipy.sparse as sps filename = "file.npz" output_name = "matrix_factorization" if __name__ == '__main__': dr = Datareader(mode="offline", only_load=True) ev = Evaluator(dr) pids = dr.get_test_playlists().transpose()[0] algorithm_eurm_full = sps.load_npz(filename) algorithm_eurm_small = algorithm_eurm_full[pids] ev.evaluate(post.eurm_to_recommendation_list(algorithm_eurm_small), name=output_name, verbose=True, show_plot=True, save=True)
import warnings warnings.warn( 'This function still use the old version of the remove seed, it should be replaced soon by the one in post_processing class' ) self.urm = sps.csr_matrix(self.urm[self.pid]) tmp = self.urm.tocoo() row = tmp.row col = tmp.col min = self.eurm.tocoo().min() self.eurm = sps.lil_matrix(self.eurm) self.eurm[row, col] = -1 self.eurm = sps.csr_matrix(self.eurm) return self.eurm if __name__ == '__main__': from utils.datareader import Datareader dr = Datareader(verbose=False, mode="offline", only_load="False") rec = Top_pop() rec.fit(dr.get_urm(), dr.get_test_playlists().transpose()[0]) eurm = rec.compute_rating().tocsr() sps.save_npz("top_pop online.npz", eurm.tocsr()) exit() import utils.evaluator as ev from utils.post_processing import eurm_to_recommendation_list eva = ev.Evaluator(dr) eva.evaluate(eurm_to_recommendation_list(eurm), "cacca TOPTOP")