UserCF python代码
时间: 2023-10-12 09:19:26 浏览: 41
以下是一个简单的基于用户的协同过滤算法的 Python 代码示例:
```python
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
# 创建用户-物品矩阵
user_item_matrix = np.array([[5, 3, 0, 2],
[2, 0, 5, 1],
[1, 4, 2, 5],
[0, 0, 4, 4],
[5, 3, 0, 0]])
# 计算用户相似度矩阵
user_similarity_matrix = cosine_similarity(user_item_matrix)
# 预测用户对物品的评分
def predict(user_id, item_id):
# 找到与当前用户最相似的 k 个用户
k = 2
similar_user_indices = np.argsort(user_similarity_matrix[user_id])[::-1][1:k+1]
# 计算预测评分
numerator = 0
denominator = 0
for i in similar_user_indices:
numerator += user_similarity_matrix[user_id][i] * user_item_matrix[i][item_id]
denominator += user_similarity_matrix[user_id][i]
prediction = numerator / denominator
return prediction
# 测试预测函数
print(predict(2, 1)) # 输出 2.84 (预测用户 2 对物品 1 的评分)
```
在这个代码示例中,我们首先创建了一个用户-物品矩阵,然后使用 `cosine_similarity` 函数计算了用户相似度矩阵。接着,我们定义了一个预测函数,该函数接受用户 ID 和物品 ID 作为输入,返回对应的预测评分。在预测函数中,我们首先找到与当前用户最相似的 k 个用户,然后根据这些相似用户的评分和相似度计算预测评分。最后,我们测试了预测函数,输出了用户 2 对物品 1 的预测评分。