我正在玩scipy的余弦距离。从我收集的数据来看,余弦距离越接近1,向量越相似。在一个文本挖掘项目中,我得到了一些意想不到的结果,所以我决定研究最简单的情况。
import numpy as np
import scipy.spatial
arr1 = np.array([1,1])
arr2 = np.array([1,1])
print scipy.spatial.distance.cosine(arr1, arr2)
我的程序显示0.0。
结果不是1.0吗?为什么或为什么不呢?
答案 0 :(得分:1)
这是余弦值距离,而不是cosine similarity。将函数d(u,v)设为距离的基本要求是d(u,u)= 0。
在scipy.spatial.distance.cosine
的文档字符串中查看公式的定义,请注意该公式以1 - (...)
开头。您对函数的期望可能基于(...)
中的数量,但是该表达式是余弦相似性。