from matrix_factorization_algo import MatrixFactorizationAlgo from DataHandler import DataHandler from knn_algo import knn from hybrid_algo_weighted import HybridAlgoWeighted # from Evaluator import Evaluator #load dataset dataprocessor = DataHandler() evaluationData = dataprocessor.getEvaluation() rankings = dataprocessor.getRank() evaluator = Evaluator() #use random as our basline here Random = NormalPredictor() evaluator.Add_Algo(Random, "Random") # add knn algos knngenerator = knn() knn_algo_dict = knngenerator.generate_knn(evaluationData) for key in knn_algo_dict: evaluator.Add_Algo(knn_algo_dict[key], key) # adding MF algos mf_algo = MatrixFactorizationAlgo() mf_algo_dict = mf_algo.generate_algorithms(evaluationData) for key in mf_algo_dict: evaluator.Add_Algo(mf_algo_dict[key], key) # since KNN_bl has high novelty and diversity, SVD++ has lower novelty and diversity, # we can combine the KNN and SVD approaches in a way based on how much a user likes