看起来scipy.spatial.distance.cdist中的余弦相似度距离是这样的:
1 - u*v/(||u||||v||)
与sklearn.metrics.pairwise.cosine_similarity不同,后者是
u*v/||u||||v||
有人知道定义不同的原因吗?
回答:
好问题,但确实,这两者是不同的东西,但通过以下方程联系在一起:
Cosine_distance = 1 - cosine_similarity
为什么?
通常,人们使用余弦相似度作为向量之间的相似性度量。现在,距离可以定义为1-余弦相似度。
背后的直觉是,如果两个向量完全相同,那么相似度是1(角度=0),因此,距离是0(1-1=0)。
同样,你可以为得到的相似度值范围定义余弦距离。
余弦相似度范围: -1表示完全相反,1表示完全相同,0表示正交。