Я создаю рекомендательную систему, используя модель машины для факторизации sagemaker.
Мой желаемый результат - иметь матрицу рейтинга , где я могу найти прогнозируемый результат по идентификатору пользователя и идентификатору элемента .
Я понимаю, что есть API прогнозирования , предоставляемый моделью:
result = fm_predictor.predict(X_test[1000:1010].toarray())
Но я не уверен, как я могу использовать его для достижения желаемой цели. Если я хочу узнать, например, заинтересован ли пользователь № 123 в фильме № 456, как я могу использовать приведенный выше API?
Ссылка:
https://medium.com/@julsimon/building-a-movie-recommender-with-factorization-machines-on-amazon-sagemaker-cedbfc8c93d8
https://www.slideshare.net/AmazonWebServices/building-a-recommender-system-on-aws-aws-summit-sydney-2018 (с.41,43)
Обновлен:
Я думаю, что теперь я понимаю, как использовать API, вам нужно создать другой набор данных с горячим кодированием в качестве входных данных, например:
X_new = lil_matrix((1, nbFeatures)).astype('float32')
X_new[0, 935] = 1
X_new[0, 1600] = 1
prediction2 = X_new[0].toarray()
result2 = fm_predictor.predict(prediction2)
print(result2)
Но, похоже, было бы неэффективно заполнять матрицу рекомендаций таким образом. Какова будет лучшая практика?