基于用户的协同过滤电影推荐系统的Python代码,使用MovieLens数据集
时间: 2024-02-24 22:53:14 浏览: 128
好的,这是一个基于用户的协同过滤电影推荐系统的 Python 代码,使用 MovieLens 数据集。
首先,需要导入必要的库和数据集:
```python
import pandas as pd
import numpy as np
# 读取数据集
ratings = pd.read_csv('ratings.csv')
movies = pd.read_csv('movies.csv')
# 合并数据集
ratings = pd.merge(movies, ratings).drop(['genres', 'timestamp'], axis=1)
# 创建用户-电影评分矩阵
user_ratings = ratings.pivot_table(index=['userId'], columns=['title'], values='rating')
```
接着,计算相似度矩阵:
```python
# 计算相似度矩阵
corr_matrix = user_ratings.corr(method='pearson', min_periods=10)
```
然后,定义一个函数来进行推荐:
```python
# 定义函数来进行推荐
def get_movie_recommendations(movie_name, user_ratings, corr_matrix):
similar_scores = corr_matrix[movie_name] * (user_ratings - user_ratings.mean())
similar_scores = similar_scores.dropna()
similar_scores = similar_scores.sort_values(ascending=False)
return similar_scores
```
最后,调用该函数来获取推荐电影列表:
```python
# 获取推荐电影列表
movie_name = 'Toy Story (1995)'
recommendations = get_movie_recommendations(movie_name, user_ratings, corr_matrix)
print(recommendations.head(10))
```
这将返回与 Toy Story 最相似的前 10 部电影。
阅读全文