def output(train, test, result, k): popularity = Evaluation.Popularity(train, test, result) coverage = Evaluation.Coverage(train, test, result) * 100 print("K is:", k) print("popularity:{0}".format(popularity)) print("coverage:{0}".format(coverage)) return popularity, coverage
# result = UserCF.Recommendation(test.keys(), train, W) # W = UserCF_IIF.UserSimilarity(train) # rank = UserCF_IIF.Recommend('1',train,W) # result = UserCF_IIF.Recommendation(test.keys(), train, W) # W = ItemCF.ItemSimilarity(train) # rank = ItemCF.Recommend('1',train,W) # result = ItemCF_IUF.Recommendation(test.keys(),train, W) # W = ItemCF_IUF.ItemSimilarity(train) # rank = ItemCF_IUF.Recommend('1',train,W) # result = ItemCF_IUF.Recommendation(test.keys(),train, W) [P, Q] = LFM.LatentFactorModel(train, 10, 30, 0.02, 0.01) # rank = LFM.Recommend('2',train,P,Q) result = LFM.Recommendation(test.keys(), train, P, Q) N = 30 precision += Evaluation.Precision(train, test, result, N) recall += Evaluation.Recall(train, test, result, N) coverage += Evaluation.Coverage(train, test, result, N) popularity += Evaluation.Popularity(train, test, result, N) precision /= numFlod recall /= numFlod coverage /= numFlod popularity /= numFlod #运行完标志 print('Done!')
# W = ItemCF_IUF.ItemSimilarity(train) # rank = ItemCF_IUF.Recommend('1',train,W) # result = ItemCF_IUF.Recommendation(test.keys(),train, W) # [P,Q] = LFM.LatentFactorModel(train, 10,30, 0.02, 0.01) # rank = LFM.Recommend('2',train,P,Q) # result = LFM.Recommendation(test.keys(), train,P,Q) N = 5 # 用户-物品训练集,用户-物品测试集,用户推荐字典集,推荐要N个 precision += Evaluation.Precision(train,test, result,N) recall += Evaluation.Recall(train,test,result,N) coverage += Evaluation.Coverage(train, test, result,N) # popularity += Evaluation.Popularity(train, test, result,N) precision_transE += Evaluation.Precision(train, test, result_transE, N) recall_transE += Evaluation.Recall(train, test, result_transE, N) coverage_transE += Evaluation.Coverage(train, test, result_transE, N) print('========================') # 除以五次的平均 precision /= numFlod recall /= numFlod coverage /= numFlod # popularity /= numFlod precision_transE /= numFlod recall_transE /= numFlod coverage_transE /= numFlod