基于协同过滤推荐毕设
时间: 2023-12-29 11:26:30 浏览: 78
基于协同过滤的推荐系统是一种常见的推荐算法,它通过分析用户的历史行为和与其他用户的相似性来进行智能推荐。在毕设中,你可以选择使用基于协同过滤的推荐算法来实现一个个性化推荐系统。
下面是一个基于协同过滤的推荐系统的简单示例代码:
```python
import numpy as np
# 创建用户-物品评分矩阵
ratings = np.array([
[5, 3, 0, 1],
[4, 0, 4, 4],
[1, 1, 0, 5],
[0, 0, 4, 0],
[2, 2, 1, 0]
])
# 计算用户之间的相似度(使用余弦相似度)
def cosine_similarity(user1, user2):
dot_product = np.dot(user1, user2)
norm1 = np.linalg.norm(user1)
norm2 = np.linalg.norm(user2)
return dot_product / (norm1 * norm2)
# 根据用户相似度进行推荐
def recommend(user_id, ratings, similarity_func):
num_users = ratings.shape[0]
user_ratings = ratings[user_id]
scores = np.zeros(num_users)
for i in range(num_users):
if i != user_id:
similarity = similarity_func(user_ratings, ratings[i])
scores[i] = similarity
# 根据相似度排序,获取推荐列表
sorted_indices = np.argsort(scores)[::-1]
recommendations = []
for i in sorted_indices:
if user_ratings[i] == 0:
recommendations.append(i)
return recommendations
# 示例:对用户0进行推荐
recommendations = recommend(0, ratings, cosine_similarity)
print("Recommendations for user 0:", recommendations) # 输出:[2, 1]
```
这段代码中,我们首先创建了一个用户-物品评分矩阵,然后定义了一个计算用户相似度的函数(这里使用余弦相似度),接着根据用户相似度进行推荐。最后,我们对用户0进行推荐,并输出推荐结果。
阅读全文