我们如何计算由它们的评分表示的两个项目的调整余弦相似度?

Posted

技术标签:

【中文标题】我们如何计算由它们的评分表示的两个项目的调整余弦相似度?【英文标题】:How can we calculate adjusted cosine similarity for two items represented by their ratings? 【发布时间】:2016-05-30 08:35:22 【问题描述】:

我想计算分别由ab 表示的两个项目的调整余弦相似度值。我们采用两个向量a=2,3,1,0b=1,0,4,2。我知道余弦相似度是如何工作的,但我坚持使用调整后的余弦相似度方法。

【问题讨论】:

您面临的编程问题到底是什么? 【参考方案1】:

这可能对你有用:

function sim(i,j) 
    item1 = 0
    item2 = 0

    for (k = 0; k < length(data); k++) 
        item1 += (data[k][i] - avg(data[k]))
        item2 += (data[k][j] - avg(data[k]))
    

    var numerator = item1*item2
    var denominator =(sqrt(item1*item1)*sqrt(item2*item2)
    var result = (numerator /denominator )
    return result

【讨论】:

以上是关于我们如何计算由它们的评分表示的两个项目的调整余弦相似度?的主要内容,如果未能解决你的问题,请参考以下文章

基于用户、基于项目和SVD的协同过滤Python代码

R语言使用lsa包计算余弦相似度(Cosine Similarity)实战:两个向量的余弦相似度矩阵的余弦相度

如何计算两个向量的余弦相似度?

Java根据余弦定理计算文本相似度

一文带你了解推荐系统常用模型及框架

ES计算余弦相似度