from FeatureWeighting.User_CFW_D_Similarity_Linalg import User_CFW_D_Similarity_Linalg from Hybrid.HybridGen2Recommender import HybridGen2Recommender from MatrixFactorization.Cython.MatrixFactorization_Cython import MatrixFactorization_BPR_Cython from MatrixFactorization.Cython.MatrixFactorization_Cython import MatrixFactorization_AsySVD_Cython from MatrixFactorization.Cython.MatrixFactorization_Cython import MatrixFactorization_FunkSVD_Cython from Hybrid.HybridNormRecommender import HybridNormRecommender from GraphBased.RP3betaRecommender import RP3betaRecommender from SLIM_ElasticNet.SLIMElasticNetRecommender2 import MultiThreadSLIM_ElasticNet Data = DataManager() urm_train, urm_test = split_train_leave_k_out_user_wise(Data.get_urm(), threshold=10, temperature='normal') urm_train, urm_valid = split_train_leave_k_out_user_wise(urm_train, threshold=10, temperature='valid') urm_valid = Data.create_test_warm_users(urm_valid, threshold=3) evaluator_valid = EvaluatorHoldout(urm_valid, cutoff_list=[10]) evaluator_test = EvaluatorHoldout(urm_test, cutoff_list=[10]) recommender = MultiThreadSLIM_ElasticNet # recommender = MatrixFactorization_FunkSVD_Cython # recommender = MatrixFactorization_AsySVD_Cython # recommender = MatrixFactorization_BPR_Cython # recommender_1 = RP3betaRecommender(urm_train) # recommender_1.fit(topK=16, alpha=0.03374950051351756, beta=0.24087176329409027, normalize_similarity=True) # # result, str_result = evaluator_valid.evaluateRecommender(recommender_1) # print('Il valid iniziale è : {}'.format(result[10]['MAP'])) # # result, str_result = evaluator_test.evaluateRecommender(recommender_1)
data_folder = Path(__file__).parent.absolute() from FeatureWeighting.User_CFW_D_Similarity_Linalg import User_CFW_D_Similarity_Linalg from Hybrid.HybridNorm3Recommender import HybridNorm3Recommender from MatrixFactorization.ALSRecommender import ALSRecommender from MatrixFactorization.BPRRecommender import BPRRecommender import similaripy as sim data = DataManager() urm_train = data.get_urm() urm_train, urm_test = split_train_leave_k_out_user_wise(data.get_urm(), temperature='normal') urm_train, urm_valid = split_train_leave_k_out_user_wise(urm_train, temperature='valid2') urm_train_warm = data.create_test_warm_users(urm_train, threshold=10) urm_test_warm = data.create_test_warm_users(urm_test, threshold=10) evaluator_test_warm = EvaluatorHoldout(urm_test_warm, cutoff_list=[10]) recommender = UserKNNCFRecommender(urm_train) recommender.fit(shrink=2, topK=600, normalize=True) recommender_warm = UserKNNCFRecommender(urm_train_warm) recommender_warm.fit(shrink=2, topK=500, normalize=True) result, str_result = evaluator_test_warm.evaluateRecommender(recommender) print('The Map of test of urm normal is : {}'.format(result[10]['MAP'])) result, str_result = evaluator_test_warm.evaluateRecommender(recommender_warm) print('The Map of test of urm warm is : {}'.format(result[10]['MAP']))