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

  统计/机器学习 推荐系统 Python    浏览次数:8267        分享
0

我需要计算推荐系统里面两个条目的相似程度,我采用余弦距离。

在python里调用了scipy

>>> from scipy.spatial import distance
>>> a = [-1, -2, 3]
>>> b = [2, 1, -2]
>>> distance.cosine(a,b)
1.8908708063747479

这个向量a和b的夹角余弦大于1了?这个是什么情况?哪里错了吗?

 

杨业勇   2017-04-01 13:00



   1个回答 
2

你说的是cosine distance还是cosine similarity.

distance.cosine(a,b)是计算余弦距离的

1 - distance.cosine(a,b)是计算余弦相似的。

>>> from scipy.spatial import distance
>>> a = [-1, -2, 3]
>>> b = [2, 1, -2]
>>> 1 - distance.cosine(a,b)
 -0.890870806374747


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

派大星   2017-04-02 13:58



  相关讨论

余弦相似和内积的意义?

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

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

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

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

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

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

协同过滤的数据预处理问题

为什么wide&deep模型用ftrl和adagrad两种优化方法

python里怎么计算jaccard相似

  随便看看

怎么理解图像识别里的dice系数?

dataframe每行或者每列中缺失值(na, nan, null)的个数

协方差矩阵一定是满秩的吗?

行数很多的pandas DataFrame如何在jupyter中完整显示?

python里怎么求一个矩阵的秩?