python代码写出推荐算法
时间: 2023-10-12 10:55:47 浏览: 84
Python夜深人静写算法.docx
以下是一个简单的基于协同过滤的推荐算法的示例代码:
```python
import numpy as np
# 创建用户-物品评分矩阵
ratings = np.array([
[5, 3, 0, 1, 4],
[1, 0, 5, 4, 2],
[0, 2, 4, 1, 0],
[3, 1, 0, 5, 4]
])
# 计算用户之间的相似度(使用余弦相似度)
def similarity(user1, user2):
return np.dot(user1, user2) / (np.linalg.norm(user1) * np.linalg.norm(user2))
# 根据相似度计算推荐结果
def recommend(user_id, ratings):
similarities = []
for user in ratings:
similarities.append(similarity(ratings[user_id], user))
similarities = np.array(similarities)
# 根据相似度对用户进行排序
sorted_users = np.argsort(similarities)[::-1]
# 找到与目标用户最相似的K个用户
k = 3
top_k_users = sorted_users[1:k+1]
# 计算推荐分数(加权求和)
scores = np.zeros(ratings.shape[1])
for user in top_k_users:
scores += similarities[user] * ratings[user]
# 排除目标用户已评分的物品
scores[ratings[user_id] != 0] = -1
# 返回推荐结果(按分数降序排列)
recommendations = np.argsort(scores)[::-1]
return recommendations
# 示例用法
user_id = 0
recommended_items = recommend(user_id, ratings)
print("为用户 {} 推荐的物品为:".format(user_id))
print(recommended_items)
```
这是一个简单的基于协同过滤的推荐算法示例,其中使用了余弦相似度来计算用户之间的相似度,并根据相似度计算推荐结果。请注意,这只是一个示例,实际应用中可能需要更复杂的算法和数据处理。
阅读全文