数据源:http://grouplens.org/dataset/movieslens,实现个性化视频推荐的代码
时间: 2023-07-02 19:23:45 浏览: 93
个性化影片推荐系统JAVA源代码
以下是一个简单的个性化视频推荐代码示例,使用MovieLens数据集:
```
import pandas as pd
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
# 加载数据
movies = pd.read_csv('movies.csv')
ratings = pd.read_csv('ratings.csv')
# 计算用户对电影的评分矩阵
ratings_matrix = ratings.pivot_table(index=['userId'], columns=['movieId'], values='rating')
# 用平均值填充缺失值
mean_ratings = ratings_matrix.mean(axis=1)
ratings_matrix = ratings_matrix.apply(lambda x: x.fillna(x.mean()), axis=1)
# 计算电影之间的相似度
movie_similarity = cosine_similarity(ratings_matrix.T)
# 为用户推荐电影
def get_movie_recommendations(user_id, top_n):
# 获取用户对所有电影的评分
user_ratings = ratings_matrix.loc[user_id].values.reshape(1, -1)
# 计算用户对所有电影的评分加权平均值
weighted_ratings = np.dot(user_ratings, movie_similarity) / np.sum(movie_similarity)
# 将加权平均值排序并返回前n个电影
movie_indices = np.argsort(weighted_ratings[0])[::-1][:top_n]
return movies.iloc[movie_indices]['title']
# 示例:为用户1推荐前10个电影
get_movie_recommendations(1, 10)
```
这段代码将MovieLens数据集中的电影和用户评分数据加载到Pandas数据框中。然后,它通过计算电影之间的余弦相似度来确定它们之间的相似度。最后,该函数使用用户对电影的加权平均评分来为用户推荐电影。
阅读全文