没有评级的推荐引擎

amc*_*h89 9 recommendation-engine machine-learning data-science

我在 Towards Data Science/medium/ 等方面发现了数十篇关于使用 imdb 数据制作推荐引擎的文章(基于用户对电影的评分,我们应该向这些用户推荐哪些电影)。这些文章从基于用户的内容过滤和基于项目的内容过滤的“基于内存的方法”开始。我的任务是制作一个推荐引擎,由于没有一个套装真正关心或了解这一点,我想做最低限度的工作(这似乎是基于用户的内容过滤)。

问题是,我所有的数据都是二元的(没有评分,只是根据其他用户购买的物品,我们是否应该向类似用户推荐物品-这实际上类似于所有媒体文章都从彼此那里窃取的漫画,但是没有一篇中等文章给出了如何做到这一点的例子)。

所有文章都使用 Pearson Correlation 或余弦相似度来确定用户相似度,我可以将这些方法用于二进制维度(购买与否),如果可以,如何,如果不是,是否有不同的方法来衡量用户相似度?

我正在使用 python 顺便说一句。我在想也许使用汉明距离(有没有不好的原因)

Aru*_*ath 6

  • 即使对于二进制维度,基于相似度得分的方法也确实有效。当您有分数时,两个相似的用户可能看起来像 [5,3,3,0,1] 和 [4,3,3,0,0],而在您的情况下,它会像 [1,1, 1,0,1] 和 [1,1,1,0,0]。
from scipy.spatial.distance import cosine
1 - cosine([5,3,2,0,1],[4,3,3,0,0])
0.961161313666907
1 - cosine([1,1,1,0,1],[1,1,1,0,0]) 
0.8660254037844386
Run Code Online (Sandbox Code Playgroud)
  • 另一种方法是,如果您可以获得用户购买产品的次数,则可以将该次数用作评级,然后可以计算相似度