python基于物品的协同推荐算法代码实现
时间: 2024-11-28 22:11:21 浏览: 0
Python中基于物品的协同过滤(Item-based Collaborative Filtering,ICF)是一种常用的推荐系统算法,它通过计算用户对物品之间的相似度,然后推荐那些与目标用户在过去行为中喜欢的物品相似的新项目。以下是简化的物品协同过滤算法的一个基本代码实现:
```python
from sklearn.metrics.pairwise import cosine_similarity
import pandas as pd
# 假设我们有一个物品-评分矩阵数据
data = pd.read_csv('ratings.csv') # 假设这是一个CSV文件,包含用户ID、物品ID和评分
items_df = data.pivot_table(index='user_id', columns='item_id', values='rating').fillna(0)
# 计算物品之间的余弦相似度
similarity_matrix = cosine_similarity(items_df.T)
# 定义推荐函数
def recommend(user_id, n=5):
user_ratings = items_df.loc[user_id]
similar_items = similarity_matrix[user_ratings.index] # 获取与给定用户喜欢的物品相似的物品
recommended_indices = similar_items.argsort()[:-n-1:-1] # 排序并选择最相似的n项
return items_df.columns[recommended_indices]
# 使用推荐函数
user_to_recommend = 'user1'
top_n_recs = recommend(user_to_recommend)
print(f"对于用户{user_to_recommend},我们推荐:{top_n_recs}")
```
这个例子使用了`sklearn`库中的余弦相似度计算相似度,并假设了评分是二进制的。实际应用中,可能会加入加权或者其他调整,以优化推荐结果。
阅读全文