【问题标题】:Writing an R function to find cosine similarity编写一个 R 函数来查找余弦相似度
【发布时间】:2021-05-02 01:03:49
【问题描述】:

我知道余弦函数可用于查找 R Studio 库之一中存在的余弦相似度。我正在尝试使用矢量化运算符制作我自己的,但我很难过。我的函数似乎将所有值加在一起,然后一次性对它们进行运算,而不是对每个点集进行每个余弦相似度并将它们按应有的方式加在一起。

cossim <- function(A,B) { (sum(A,B))/sqrt((sum(A^2))*(sum(B^2))) }

我传入了两个向量(出于测试目的,我只是尝试传入同一个向量,看看它是否会返回 1,这就是你对同一向量的 2 个进行余弦运算时会发生的情况),它会返回 0.8571429 而不是 1 .

vec1 <- c(1,2,3)

当我进行数学运算时,函数以 12/14 而不是 14/14 结束,就像它最终应该得到 1 一样。

【问题讨论】:

    标签: r cosine-similarity


    【解决方案1】:

    我认为问题在于你应该在对分子求和之前将 A 和 B 的元素相乘。

    cossim <- function(A,B) { (sum(A*B))/sqrt((sum(A^2))*(sum(B^2))) }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-12
      • 2019-08-06
      • 2011-02-01
      • 2016-04-11
      • 2011-01-01
      • 2021-08-02
      • 2017-12-12
      相关资源
      最近更新 更多