Scipy库相似度得分计算

时间:2018-01-05 19:32:46

标签: python python-3.x numpy scipy

我尝试使用矢量计算相似度得分:

from scipy.spatial import distance
x = [1,2,4]
y = [1,3,5]
d = distance.cdist(x, y, 'seuclidean', V=None)

但是,我一直收到这个错误:

  

ValueError:XA必须是二维数组。

1 个答案:

答案 0 :(得分:0)

首先,您需要将NumPy数组用于输入数组,错误告诉您它们需要是2-D(在这种情况下为列向量)。所以:

from scipy.spatial import distance
import numpy as np
x = [1,2,4]
y = [1,3,5]
x = np.array(x).reshape(-1, 1)
y = np.array(y).reshape(-1, 1)
x
array([[1],
       [2],
       [4]])
y
array([[1],
       [3],
       [5]])

d = distance.cdist(x, y, 'seuclidean', V=None)
d
array([[ 0.        ,  1.22474487,  2.44948974],
       [ 0.61237244,  0.61237244,  1.83711731],
       [ 1.83711731,  0.61237244,  0.61237244]])

cosine模块中有许多方法可以计算两个向量之间的相似性(距离)。一个常见的例子是{{3}}。

x = [1,2,4]
y = [1,3,5]
distance.cosine(x, y)
0.0040899966895213691