基于物品的协同过滤推荐算法python
时间: 2024-11-20 07:28:46 浏览: 14
基于物品的协同过滤推荐算法(Item-based Collaborative Filtering, ICF)是一种常用的推荐系统策略,它通过分析用户对项目的喜好来预测他们可能对尚未尝试过的项目感兴趣。Python中可以使用Surprise库来实现这一算法。
首先,你需要安装`surprise`库,如果还没有安装,可以通过pip进行安装:
```bash
pip install surprise
```
然后,假设你有一个包含用户-物品评分矩阵的数据集,比如CSV格式:
```python
import pandas as pd
from surprise import Dataset, Reader, KNNBasic
# 创建数据读取器
reader = Reader(rating_scale=(1, 5)) # 假设评分范围是1到5星
# 从CSV加载数据
data = pd.read_csv('ratings.csv')
data = data[['user_id', 'item_id', 'rating']]
dataset = Dataset.load_from_df(data, reader)
# 初始化KNNBasic模型
algo = KNNBasic()
# 训练模型
algo.fit(dataset.build_full_trainset())
```
在训练完成后,你可以使用`algo.test()`方法来进行推荐:
```python
# 获取用户ID
target_user_id = 'some_user'
# 预测给定用户对所有未知项目可能的评分
predictions = algo.test(target_user_id)
# 打印推荐列表
for item_id, estimate, _ in predictions:
print(f"推荐物品ID: {item_id}, 估计评分: {estimate}")
```
阅读全文