Skip to content
AlexandraSoboleva edited this page Nov 7, 2017 · 1 revision

1. Задание

Для заданного пользователя рассчитать оценки для всех фильмов, которые он не оценил.

  1. Считаем входные данные из файла "data.csv" с помощью пакета csv и запишем их в двумерный список
  2. Для требуемого по заданию пользователя (в моем случае 33, так как нумерация с 0 - 32) найдем 5 наиболее похожих пользователей. Для этого для всех пользователей посчитаем коэффициент похожести и запишем в словарь. Далее отсортируем словарь по значениям и достанем 5 последних элементов.
  3. Для требуемого по заданию пользователя (в моем случае 33, так как нумерация с 0 - 32) найдем все фильмы, у которых оценка меньше 0, то есть её нет.
  4. Для найденных на предыдущем шаге фильмов для выбранного пользователя, найдем оценку по формуле, приведенной в задании. Для вычислений нам понадобится дополнительная функция, которая высчитывает среднюю оценку пользователя, которого ей передадут, и коэффициенты похожести высчитанные на шаге 2, 5 наиболее похожих пользователей, при чем только тех, у которых есть оценка для выбранного фильма.

2. Задание

Порекомендовать заданному пользователю из задания 1 фильм, который он посмотрел бы в будний день, если такой фильм есть в данных.

  1. Считаем входные данные контекста из файла "context.csv" с помощью пакета csv и запишем их в двумерный список.
  2. Откорректируем двумерный список с данными, прочитанный на шаге 1 первого задания, по такому принципу: для выходных дней сделаем оценки отрицательные, таким образом для подсчета оценки для рекомендации фильма на будний день будем использовать оценки, поставленные в будний день, но также сможем потом восстановить данные в списке обратно. 3.Найдем фильмы и оценки также как в первом задании.
  3. Выберем из найденных оценок максимальную, и именно фильм с этой оценкой порекомендуем нашему пользователю.