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

  统计/机器学习 推荐系统 Python    浏览次数: 605
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



   2个回答 
1

你说的是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

派大星   2017-04-02 13:58

0

你说的是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.8908708063747478



派大星   2017-04-02 13:57



  相关问题

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

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

余弦相似和内积的意义?   1回答

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

推荐系统中的召回(recall)是什么意思?   1回答

推荐系统有哪些常用的评价标准   3回答

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

python里怎么计算jaccard相似   2回答

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

有没有R的推荐系统的工具包(library)?   1回答

map lambda if逗号报错,invalid syntax   1回答

引用报错ImportError: No module named stats   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!