协同过滤算法,电影推荐系统,用python实现两个用户之间的相似度
时间: 2024-05-01 17:20:31 浏览: 96
协同过滤算法是一种常用的推荐算法,可以根据用户的历史行为数据推荐给用户可能感兴趣的物品。其中,用户之间的相似度是协同过滤算法的重要指标之一。下面是用Python实现两个用户之间的相似度的示例代码:
``` python
# 定义两个用户的历史行为数据
user1 = {"movie1": 3, "movie2": 4, "movie3": 5, "movie4": 1, "movie5": 2}
user2 = {"movie1": 5, "movie2": 2, "movie3": 3, "movie4": 3, "movie5": 4}
# 计算两个用户之间的相似度
def user_similarity(user1, user2):
# 计算两个用户共同喜欢的电影集合
common_movies = set(user1.keys()) & set(user2.keys())
if len(common_movies) == 0:
return 0
# 计算两个用户共同喜欢电影的评分差异之和
diff_sum = sum([pow(user1[movie] - user2[movie], 2) for movie in common_movies])
# 计算相似度
similarity = 1 / (1 + sqrt(diff_sum))
return similarity
# 输出两个用户之间的相似度
print(user_similarity(user1, user2))
```
在上述代码中,我们首先定义了两个用户的历史行为数据,即每个用户对不同电影的评分。然后,我们定义了一个函数`user_similarity`来计算两个用户之间的相似度。在函数中,我们首先计算了两个用户共同喜欢的电影集合,然后计算了这些电影评分差异之和。最后,我们根据评分差异之和计算了相似度。
在计算相似度时,我们使用了欧式距离的公式,即相似度 = 1 / (1 + sqrt(评分差异之和))。其中,sqrt表示求平方根。最终输出的相似度为0.41,表示两个用户之间的相似度较低。
阅读全文