Python 协同过滤算法案例
时间: 2024-08-15 21:09:22 浏览: 56
在Python中,协同过滤是一种常用的推荐系统算法,它通过分析用户的行为历史数据来预测他们对未评级物品的喜好。主要有两种类型的协同过滤:
1. 用户-用户协同过滤(User-Based Collaborative Filtering):基于“物以类聚”原则,寻找具有相似评分模式的其他用户,并推荐那些相似用户喜欢但目标用户尚未尝试过的项目。
2. 物品-物品协同过滤(Item-Based Collaborative Filtering):关注物品之间的关联性,计算两个物品之间的相似度,然后推荐给用户他们评分较高的类似物品。
例如,假设我们有一个电影评分的数据集(如MovieLens),我们可以这样做:
```python
from surprise import Dataset, Reader, KNNBasic
# 首先,设置数据读取器和创建数据集对象
reader = Reader(rating_scale=(1, 5)) # 指定评分范围
data = Dataset.load_from_df(movie_ratings_df[['user_id', 'item_id', 'rating']], reader)
# 使用KNNBasic模型实现物品-物品协同过滤
algo = KNNBasic()
algo.fit(data.build_full_trainset())
# 推荐未知评分的电影
for user_id in test_users:
recommendations = algo.test(user_id=user_id)
print(f"用户 {user_id} 的推荐列表:")
for item_id, rating, _ in recommendations:
print(f"电影 {item_id}: {rating}")
```
阅读全文