目前,常见的距离如下:
(1) Minkowski Distance
(2) Euclidean Distance
(3) ManHattan Distance
(4) Chebyshev Distance
(5) Cosine
(6) HammingDistance
(7) Jaccard Similarity Coefficient
举实例如下:
from numpy import *
vector1 = mat([1,2,3,4])vector2 = mat([4,5,6,7])
#-----------------------------------------------
print("Euclidean=",sqrt((vector1-vector2)*\
((vector1-vector2).T)))
print("ManHattan=",sum(abs(vector1-vector2)))
print("Chebyshev=",abs(vector1-vector2).max())
#计算夹角余弦
Lv1 = sqrt(vector1*vector1.T)
Lv2 = sqrt(vector2*vector2.T)
cosV12 = vector1*vector2.T/(Lv1*Lv2)
print("Cosine=",cosV12)
#------------------------------------------------
Vector1 = array([1,1,0,1,0,1,0,0,1])
Vector2 = array([0,1,1,0,0,0,1,1,1])
matV = mat([Vector1 ,Vector2])
arrayv=array([Vector1,Vector2])
print("matv",matV,"shape(matv)",shape(matV))
print("arrayv",arrayv,"shape(arrayv",shape(arrayv))
smtr=nonzero(matV[0]-matV[1])
print("Hamming Distance",shape(smtr[0])[0])
print("dist.jaccard:",dist.pdist(matV,'jaccard'))
#------------------------------------------------