对于movielens数据集的基于协同过滤的电影推荐系统代码怎么写
时间: 2023-08-28 18:03:23 浏览: 131
基于协同过滤的电影推荐系统代码需要以下步骤:
1. 加载数据集
2. 数据预处理
3. 计算用户之间的相似度
4. 给用户推荐电影
下面是一个简单的示例代码:
```python
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
# 1. 加载数据集
ratings_data = pd.read_csv('ratings.csv')
movies_data = pd.read_csv('movies.csv')
# 2. 数据预处理
ratings_data = ratings_data.drop(['timestamp'], axis=1)
# 3. 计算用户之间的相似度
user_ratings = ratings_data.pivot_table(index=['userId'], columns=['movieId'], values='rating')
user_ratings = user_ratings.fillna(0)
user_similarity = cosine_similarity(user_ratings)
# 4. 给用户推荐电影
user_id = 1
user_ratings = user_ratings.loc[user_id].astype(bool)
similarity_scores = pd.Series(user_similarity[user_id])
similarity_scores.index = user_ratings.index
similarity_scores = similarity_scores.drop(user_id)
recommendations = ((user_ratings == False) & (similarity_scores > 0.4)).index
recommended_movies = movies_data[movies_data['movieId'].isin(recommendations)]
print(recommended_movies.head())
```
这个代码使用了 `cosine_similarity` 函数计算用户之间的相似度,然后根据相似度推荐给用户电影。其中,我们假设用户对评分为4或5的电影有兴趣,因此只推荐评分高于4的电影。此外,我们还设置了一个相似度阈值,只有相似度高于该阈值的用户的电影才会被推荐。
阅读全文