MostPopular 算法的 是指对每个用户都选择出当前流行度最高的Top-K个物品进行推荐,在推荐的时候,需要去除用户原先就浏览过的项目。
算法代码如下:
# Most Pop def MostPopular(pop_dict, I, K): ''' pop_dic:流行度字典,存储了每个item:pop_value的键值对。 I:用户可以选择的Item空间(需去除已经看过的item) K:Top-K 值,推荐出K个item给用户 ''' pop_dict_sort = sorted(pop_dict.items(), key=lambda kv: (kv[1], kv[0]), reverse=True) for each_item in pop_dict_sort: if each_item[0] not in I: pop_dict_sort.remove(each_item) return [i[0] for i in pop_dict_sort[:K]]
在ML-1M数据集上的测试结果(100个用户):
Precision: 0.05399999999999998 Recall: 0.0659683173313864 HR: 0.08 NDCG: 0.2668352016595219 ARP: 25.750500000000002