代码生成(基于Python的KNN算法的电影推荐)
时间: 2024-02-02 16:04:34 浏览: 34
以下是一个基于Python的KNN算法的电影推荐的代码示例:
```python
import pandas as pd
from sklearn.neighbors import NearestNeighbors
# 读取电影评分数据
ratings = pd.read_csv('ratings.csv')
# 创建电影评分矩阵
movie_ratings = ratings.pivot_table(index=['userId'], columns=['movieId'], values='rating')
# 填充缺失值
movie_ratings = movie_ratings.fillna(0)
# 计算电影之间的相似性
model_knn = NearestNeighbors(metric='cosine', algorithm='brute')
model_knn.fit(movie_ratings)
# 获取与指定电影最相似的电影
def get_similar_movies(movie_title, n=10):
movie_index = movie_ratings.columns.get_loc(movie_title)
distances, indices = model_knn.kneighbors(movie_ratings.iloc[:, movie_index].values.reshape(1, -1), n_neighbors=n+1)
similar_movies = []
for i in range(1, len(distances.flatten())):
similar_movies.append(movie_ratings.columns[indices.flatten()[i]])
return similar_movies
# 测试
similar_movies = get_similar_movies('Toy Story (1995)')
print(similar_movies)
```
说明:
1. 首先读取电影评分数据,并使用pivot_table函数创建电影评分矩阵。
2. 填充缺失值,使用NearestNeighbors类计算电影之间的相似性。
3. 定义一个函数get_similar_movies,使用kneighbors函数获取与指定电影最相似的电影。
4. 测试函数,指定Toy Story (1995)电影,输出最相似的10个电影。