Я пытаюсь найти сходство между новыми пользователями и существующими (создал обученную модель из рекомендованного метода graphlab) из обученной модели. Итак, попытался использовать метод подобия ближайшего соседа (параметр запроса) в graphalb, чтобы сделать это таким образом. //данные - это набор данных, содержащий 100 пользователей и их рейтинги элементов
model = graphlab.nearest_neighbors.create(data)
qry=graphlab.SFrame({'UserId':[101,101,101,101,101,101,101,101,101,101,101],
'ItemId':["activity1","activity2","activity3","activity4","activity5","activity6","activity7","activity8","activity9","activity10","activity11"],
'Rating':[3,9,8,5,7,4,8,6,6,3,7]})
qry.swap_columns('UserId','ItemId')
qry.swap_columns('ItemId','Rating')
qry.print_rows()
kn=model.query(qry)
По сути, я передаю данные нового идентификатора пользователя (101) в методе запроса, идентификаторы элементов и соответствующие рейтинги этих действий. Эти itemId и рейтинги не что иное, как рейтинги существующих пользователей, которые я передаю новому пользователю, чтобы проверить сходство, похож ли новый пользователь на существующего.
Результат, ожидаемый от использования query(), заключается в том, что он должен возвращать SFrame с четырьмя столбцами: метка запроса, метка ссылки, расстояние и ранг контрольной точки среди ближайших соседей точки запроса (согласно документации Graphlab). Но я получаю что-то вроде этого-
| Точки запроса | # Пары | % Полный. | Истекшее время |
| 0 | 11 | 0,0909091 | 624us | | Готово | | 100 | 3,68 мс |
Может ли кто-нибудь помочь, почему это не дает правильного вывода?