余弦相似的定义是什么?怎么计算?

  统计/机器学习 推荐系统 描述性统计    浏览次数:5189        分享
0

假设我有个item,并且有它们的各属性的评分,比如

A = [2, 3, 4]

B = [1, 4, 2]

怎么求它们的余弦相似?余弦相似的定义是什么?

谢谢!


 

brpc   2017-11-21 11:25



   1个回答 
8

把两个物品的属性看成向量,那么这两个物品的余弦相似就是这两个向量夹角的余弦。

余弦的定义如下

$$\cos(\theta)=\frac{<A, B>}{|A||B|}$$

用你的例子的话就是

$$\cos(\theta)=\frac{2\times 1+ 3\times4+4\times 2}{\sqrt{2^2+3^2+4^2}\sqrt{1^2+4^2+2^2}}$$


余弦的取值范围是-1到1。若1,说明这两个物品极其相似;若-1就说明完全相反。


SofaSofa数据科学社区DS面试题库 DS面经

TheTheThe   2017-11-21 13:51

如果有三个vector,例如A,B,C,还可以用cosine similarity 吗? - Mandyzzz   2018-04-07 12:58
两两求similarity吧,没有一下子算三个的 - CatalanFubini   2018-04-07 21:04


  相关讨论

python里怎么计算jaccard相似

余弦相似和内积的意义?

推荐系统里的ALS是什么意思?

怎么给推荐结果增加多样性和随机性?

推荐系统算法里的cold start是什么意思?

pointwise和pairwise推荐排序算法的区别是什么?

推荐系统中常用的表示相似或者距离的方法有哪些?

sklearn的cosine_similarity余弦相似怎么用?

两个向量的余弦距离大于1?

Jaccard相似或者Jaccard距离是怎么计算的?

  随便看看

逻辑回归的损失函数是怎么来的

怎么对pandas dataframe的列求众数

为什么矩阵的二范数和向量的二范数的定义不同?

numpy array里怎么用fillna填充nan的值?

Python计算两个数组的相关系数