基于协同过滤的推荐系统
基于用户的协同过滤
算法原理
① 找到和目标用户兴趣相似的用户集合,三种常用的用户相似度指标是皮尔逊相关系数、余弦相关系数和杰卡德相关系数
② 根据用户相似度和相似个K个用户的得分,加权计算分数,得到目标用户对商品的评分
③找到这个集合中的用户所喜欢的,并且目标用户没有听说过的物品推荐给目标用户。
注意:各相似用户的评分应该减去均值进行计算,最终代入目标用户的均值+加权得分为目标用户的得分
python实现代码:
#构建一个基于用户的推荐
def Recommendation_mean(uid,iid,similar,k=10):
"""减去平均数的计算方法"""
score = 0
weight = 0
user_id_action = freq_matrix[uid,:] #用户user_id 对所有商品的行为评分
item_id_action = freq_matrix[:,iid] #物品item_id 得到的所有用户评分
user_id_similar = similar[uid,:] #用户user_id 对所有用户的相