Насколько логичны рекомендации
Теперь, когда мы понимаем, насколько хорошо работает наша модель, и уверены, что она даёт пользователям актуальные рекомендации, давайте взглянем на конкретные рекомендации и оценим, насколько они обоснованы.
Исходные данные об оценках доступны здесь в виде 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()