想计算点对间的加权欧式距离,请问有什么好的办法么? 目前用的是numoy下的cdist,但好像没有什么好的办法进行加权
这个自己实现也是比较方便简单的
x = np.array([9,3,7])
y = np.array([4,6,5])
w = np.random.rand(3)
res = np.sqrt(np.sum(((x-y)*w)**2))
cdist的第三个参数metric可以是一个字符串表示已知的距离计算公式,或者是你自己实现的距离计算公式的函数或对象。
https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cdist.html
比如下面例子
dm = cdist(XA, XB, lambda u, v: np.sqrt(((u-v)**2).sum()))