我尝试使用矢量计算相似度得分:
from scipy.spatial import distance
x = [1,2,4]
y = [1,3,5]
d = distance.cdist(x, y, 'seuclidean', V=None)
但是,我一直收到这个错误:
ValueError:XA必须是二维数组。
答案 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