电影推荐python
时间: 2023-12-19 16:31:58 浏览: 24
电影推荐是一种常见的应用场景,Python中有很多推荐算法库可以使用,例如Surprise和LightFM等。下面是一个使用Surprise库实现电影推荐的例子:
1.安装Surprise库
```shell
pip install scikit-surprise
```
2.加载数据集
```python
from surprise import Dataset
from surprise import Reader
# 指定文件格式
reader = Reader(line_format='user item rating timestamp', sep='\t')
# 加载数据集
data = Dataset.load_from_file('./ml-100k/u.data', reader=reader)
```
3.划分训练集和测试集
```python
from surprise.model_selection import train_test_split
trainset, testset = train_test_split(data, test_size=.25)
```
4.选择算法并训练模型
```python
from surprise import SVD
# 选择SVD算法
algo = SVD()
# 训练模型
algo.fit(trainset)
```
5.进行预测并评估模型
```python
from surprise import accuracy
# 预测测试集
predictions = algo.test(testset)
# 计算RMSE
rmse = accuracy.rmse(predictions)
print('RMSE:', rmse)
```
6.使用模型进行推荐
```python
# 获取用户3没有评分的电影
user_unrated_movies = data.build_full_trainset().ur[user_id]
user_unrated_movie_ids = [item_id for item_id, _ in user_unrated_movies]
# 预测用户3对所有没有评分的电影的评分
user_ratings = [(item_id, algo.predict(user_id, item_id).est) for item_id in user_unrated_movie_ids]
# 按照评分从高到低排序
user_ratings = sorted(user_ratings, key=lambda x: x[1], reverse=True)
# 输出前10个推荐电影
for item_id, rating in user_ratings[:10]:
print('Movie ID:', item_id, 'Estimated rating:', rating)
```