您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

书店应用推荐系统

书店应用推荐系统

作为特定的具体示例,一种选择是“最近的K邻居”算法。

为简化起见,假设您只有十本书,而您只是在跟踪每个用户查看每本书的次数。然后,对于每个用户,您可能会有一个数组int timesViewed[10],其中的值timesViewed[i]用户查看书号的次数i

然后,您可以使用相关函数用户与所有其他用户进行比较,例如Pearson相关。计算当前用户c与另一个用户间的相关性,o得出的值介于-1.0和1.0之间,其中-1.0表示“该用户c与另一个用户完全相反o”,而1.0表示“该用户c与另一个用户相同o” 。

如果计算c每个用户与另一个用户间的corellation ,则会得到一个结果列表,该结果显示用户的观看模式与每个其他用户的观看模式有多相似。然后,您选择K(例如5、10、20)个最相似的结果(因此命名为算法),即K相关得分最接近1.0的用户

现在,您可以对每个用户timesViewed数组进行加权平均。例如,我们要说的averageTimesViewed[0]timesViewed[0]这K个用户中每个K用户的平均值,并按其相关分数加权。然后彼此做同样的事情averageTimesViewed[i]

现在,您有了一个数组averageTimesViewed,大致来说,它包含查看方式与最相似的K位用户c查看每本书的平均次数。推荐averageTimesViewed分数最高的书,因为这是其他用户最感兴趣的书。

通常也值得将用户已经阅读过的书籍排除在推荐范围之外,但是在计算相似度/相关性时仍要考虑这些因素仍然很重要。

还要注意,可以将其扩展以考虑其他数据(例如购物车列表等)。另外,您 可以根据需要 选择所有用户(即K=用户数量),但这并不总是会产生有意义的结果,通常选择一个合理的较小K值即可获得良好的结果,并且计算速度更快。

其他 2022/1/1 18:17:17 有432人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶