我试图实现简单的推荐系统,并试图理解不同的方法来实现我的目标。
我的数据集由用户和他们购买的物品组成。我有关于什么项目的用户购买的信息和这些项目的描述形式的标题。
起初,我想我可以使用基于用户的协作过滤方法,但我仍然坚持这样做。我不太清楚如何计算布尔数据的相似性。
例如,当我有这样的数据时
1 2 3 4
A 0 1 0 1
B 0 1 0 1
C 1 0 1 1
D 0 1 0 0
E 0 0 1 1我想向用户E推荐项目,那么在这种情况下我应该如何计算相似性呢?例如,我从python中的scikit学习模块中选择了余弦相似性。但我不太清楚什么应该被视为投入。据我所读,它应该只是两个用户计算相似的项目的向量。
例如,如果我想计算用户E和C之间的相似性,我的输入应该是什么?因为如果我只输入他们共有的值,那就没有意义了,对吧?因为输入将是1,1和1,1,对于这种相似性是1。
然后我试着输入整个向量,像这样:
from sklearn.metrics.pairwise import cosine_similarity
from numpy import array, reshape
c = array([1, 0, 1, 1])
e = array([0, 0, 1, 1])
result = cosine_similarity(c.reshape(1, -1), e.reshape(1, -1))
>>> result is 0.81649658我认为这种方法更有意义,但基于我对这类推荐的了解,我不确定它是否可以接受。
https://datascience.stackexchange.com/questions/25377
复制相似问题