我试图从训练模型中找到新用户和现有用户之间的相似性(从 graphlab 的推荐方法生成训练模型)。因此,尝试在 graphalb 中使用最近邻相似性方法(查询选项)以这种方式进行。//data 是包含 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)
基本上,我在查询方法中传递了新的 userId(101)数据,这些活动的 itemIds 和相应的评级。这些 itemId 和评级实际上只是我传递给新用户的现有用户的项目评级,以便检查新用户是否与现有用户相似。
使用 query() 的预期输出是它应该返回一个包含四列的 SFrame:查询标签、参考标签、距离和参考点在查询点最近邻中的排名(根据 Graphlab 文档)。但是我得到了这样的东西-
| 查询点 | # 对 | % 完全的。| 已用时间 |
| 0 | 11 | 0.0909091 | 624us | | 完成 | | 100 | 3.68ms |
任何人都可以帮助解释为什么这不能产生正确的输出吗?