НачатьНачать бесплатно

Насколько логичны рекомендации

Теперь, когда мы понимаем, насколько хорошо работает наша модель, и уверены, что она даёт пользователям актуальные рекомендации, давайте взглянем на конкретные рекомендации и оценим, насколько они обоснованы.

Исходные данные об оценках доступны здесь в виде original_ratings. Изучите оценки пользователей 60 и 63 и сравните их с тем, что рекомендовал алгоритм ALS. По вашему мнению, соответствуют ли рекомендации исходным предпочтениям пользователей?

Это упражнение является частью курса

Построение рекомендательных систем с помощью PySpark

Посмотреть курс

Инструкции к упражнению

  • Примените .filter() к датафрейму original_ratings, чтобы отфильтровать записи, где col("userId") равно 60, — это позволит посмотреть исходные оценки пользователя 60. Вызовите метод .sort(), чтобы отсортировать результат по полю rating, и передайте аргументу ascending значение False — так самые высокие оценки окажутся первыми.
  • Примените методы .filter() и .show() к набору данных recommendations, чтобы просмотреть рекомендации для пользователя 60. Обратите внимание: ALS формирует рекомендации уже в порядке убывания по userId, поэтому сортировать датафрейм дополнительно не нужно.
  • Повторите те же действия для пользователя 63.
  • Прослеживается ли связь между жанрами рекомендованных фильмов и исходными предпочтениями каждого пользователя?

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Look at user 60's ratings
print("User 60's Ratings:")
original_ratings.filter(col("____") == 60).____("rating", ____ = False).show()

# Look at the movies recommended to user 60
print("User 60s Recommendations:")
____.____(col("userId") == ____).show()

# Look at user 63's ratings
print("User 63's Ratings:")
original_ratings.filter(col("____") == ____).____("rating", ____ = False).show()

# Look at the movies recommended to user 63
print("User 63's Recommendations:")
____.____(col("userId") == ____).show()
Редактировать и запускать код