指的是link
计算调整后的余弦相似度矩阵(给定具有M个用户和n个项目的评级矩阵M),如下所示:
M_u = M.mean(axis=1)
item_mean_subtracted = M - M_u[:, None]
similarity_matrix = 1 - squareform(pdist(item_mean_subtracted.T, 'cosine'))
我看不出这个definition如何满足“两个评级”条件
我手动计算了调整后的余弦相似度,它们似乎与我从上面代码中得到的值不同。在
有人能澄清一下吗?在
Tags:
让我们先来理解这个公式,矩阵的存储方式是每一行都是一个用户,每一列都是一个项。用户按u索引,列按i索引
每个用户对事物的好坏有不同的判断规则。一个用户的1可以是另一个用户的3。这就是为什么我们要从每个R{u,i}中减去每个R\u u u的平均值。这是在代码中减去项目“平均值”。注意,我们用每个元素的行平均值来规范化用户的偏见。然后,我们将每个列(项)除以其范数,然后计算每列之间的余弦相似性。在
pdist(item_mean_subtrade.T,'cosine')计算项目之间的余弦距离,已知
因此,这就是代码工作的原因。在
现在,如果我直接根据定义来计算呢?我已经评论了每一步的执行情况,试着复制和粘贴代码,你可以通过打印出更多的中间步骤来与你的计算进行比较。在
两个代码给出相同的结果:
^{pr2}$相关问题 更多 >
编程相关推荐