余弦距离 > 1 in scipy

数据挖掘 Python 距离 余弦距离
2021-09-28 10:57:40

我正在开发一个推荐引擎,我选择使用 SciPy 的余弦距离作为比较项目的一种方式。

我有两个向量:

a = [2.7654870801855078, 0.35995355443076027, 0.016221679989074141, -0.012664358453398751, 0.0036888812311235068]

b = [-6.2588482809118942, -0.88952297609194686, 0.017336984676103874, -0.0054928004763216964, 0.011122959185936367]

运行以下代码将产生 ~1.999 的输出:

from scipy.spatial import distance
print(distance.cosine(a,b))

我的输入值有问题吗?任何人都知道为什么我得到> 1的结果?

1个回答

余弦距离公式为:

在此处输入图像描述

scipy类的cosine函数使用的公式是:spatial

在此处输入图像描述

因此,实际的余弦相似度度量为:-0.9998。

因此,它表示完全不同。