Ex_treme's blog.

案例:NLP技术实现预测天气冷暖感知度(KNN分类器模型实现1)

2018/11/14 Share

欧式距离一般形式

1
2
3
4
def ComputeEuclideanDistance(x1, y1, x2, y2):
"""欧式距离计算:d=(x1-x2)^2+(y1-y2)^2"""
d = math.sqrt(math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2))
return d

即求两个向量之间的距离(二维)

欧式距离拓展形式

1
2
3
4
5
6
def EuclideanDistance(instance1, instance2, length):
"""欧式距离计算拓展"""
d = 0
for x in range(length):
d += pow((instance1[x] - instance2[x]), 2)
return math.sqrt(d)

求两个向量之间的距离(任意维度)

欧式距离通用形式

1
2
3
4
5
6
7
def EuclideanDistance3(newV, dataset):
"""欧式距离计算拓展"""
rowsize, colsize = dataset.shape # 获取数据集维度值
diffMat = tile(newV, (rowsize, 1)) - dataset # 矩阵化
sqDiffMat = diffMat ** 2 # 平方
SqrtDist = sqDiffMat.sum(axis=1) ** 0.5 # 求和取平均
return SqrtDist

新的向量与数据集中的所有向量求欧式距离

CATALOG
  1. 1. 欧式距离一般形式
  2. 2. 欧式距离拓展形式
  3. 3. 欧式距离通用形式