Я пытаюсь из алгоритм совместной фильтрации, реализованный в Спарк и бегу в следующем выпуске:Спарк MLLib Collaborative Filtering с новым пользователем
Пусть я тренируюсь модель со следующими данными:
u1|p1|3
u1|p2|3
u2|p1|2
u2|p2|3
Теперь, если я протестировать его со следующими данными:
u1|p1|1
u3|p1|2
u3|p2|3
Я никогда не видел каких-либо оценок для пользователя «u3», по-видимому, потому, что пользователь не отображается в обучающих данных. Это из-за проблемы с холодным запуском? У меня сложилось впечатление, что этот вопрос будет применяться только к новому продукту. В этом случае я ожидал предсказание для «u3», так как «u1» и «u2» в данных обучения имеют схожую информацию о рейтинге с «u3». Является ли это различием между совместными фильтрами на основе моделей и на основе памяти?
Вы могли обучаться с пользователем и продуктом как нецелые? Когда я пытаюсь тренироваться в этом формате, я получаю сообщение об ошибке: Rating, (int (self.user), int (self.product), float (self.rating)) – jKraut
Похоже, мы сталкиваемся с аналогичными проблемами: как прогнозировать новых пользователей, не переучивая всю модель? –