Написать систему для рекомендации фильмов, используя коллаборативную фильтрацию.
Система рекомендации фильмовЗадание: Написать систему для рекомендации фильмов, используя коллаборативную фильтрацию. import numpy as np import pandas as pd from sklearn.metrics.pairwise import cosine_similarity from sklearn.model_selection import train_test_split # Загрузка данных ratings = pd.read_csv('ratings.csv') # предполагается столбцы userId, movieId, rating movies = pd.read_csv('movies.csv') # предполагается столбцы movieId, title # Создание матрицы пользователь-фильм movie_user_matrix = ratings.pivot_table(index='userId', columns='movieId', values='rating') # Заполнение пропущенных значений нулями movie_user_matrix_filled = movie_user_matrix.fillna(0) # Вычисление косинусного сходства между пользователями user_similarity = cosine_similarity(movie_user_matrix_filled) # Функция для рекомендации фильмов def recommend_movies(user_index, num_recommendations=5): # Сортировка индексов пользователей по степени сходства similar_users = np.argsort(-user_similarity[user_index]) # Идентификация фильмов, которые смотрел данный пользователь known_user_movies = set(movie_user_matrix.iloc[user_index].dropna().index) # Сбор рекомендаций recommendations = [] for user in similar_users: potential_movies = movie_user_matrix.iloc[user].dropna() for movie, rating in potential_movies.items(): if movie not in known_user_movies and movie not in recommendations: recommendations.append(movie) if len(recommendations) == num_recommendations: break if len(recommendations) == num_recommendations: break return movies[movies['movieId'].isin(recommendations)]['title'] # Пример использования recommended_movies = recommend_movies(0, 5) print(recommended_movies) Результат выполнения кодаФильмы, рекомендованные пользователю:
Этот код реализует базовую систему рекомендации фильмов на основе коллаборативной фильтрации, используя косинусное сходство между пользователями для предсказания интересов пользователя. | |
| |
Просмотров: 17 | |
Всего комментариев: 0 | |