余弦相似度和余弦距离的区别

Difference between cosine similarity and cosine distance

它看起来像 scipy.spatial.distance.cdist 余弦相似距离:

link to cos distance 1

1 - u*v/(||u||||v||)

不同于 sklearn.metrics.pairwise.cosine_similarity 即

link to cos similarity 2

 u*v/||u||||v||

有人知道不同定义的原因吗?

问得好但是是的,这是两个不同的东西,但通过以下等式联系起来:

Cosine_distance = 1 - cosine_similarity


为什么?

通常,人们使用余弦相似度作为向量之间的相似度度量。现在,距离可以定义为 1-cos_similarity.

这背后的直觉是,如果 2 个向量完全相同,那么 similarity 就是 1 (angle=0),因此, 距离0 (1-1=0).

同样,您可以为生成的相似度值范围定义余弦距离。

余弦相似度范围: -1表示完全相反,1表示完全相同,0表示正交。


参考文献Scipy wolfram