- 刚开始学习模式识别这门课程时,后面所学的六种距离,让我们以此来写一个代码。我说利用了Python里面的程序,调用一个库,并把第一个距离所需求的算法带进去,利用for语句循环,来实现代码。
- 已知四个样本,请用Python编写程序,分别计算4个样本两两之间的欧式距离、曼哈顿距离、切氏距离、明氏距离(p=3)、马氏距离、Canberra距离、角度相似系数。
- 所写代码:
from __future__ import division
import numpy as np
from scipy.spatial import distance
x1=[3,4,5]
x2=[5,6,1]
x3=[2,2,4]
x4=[6,4,5]
x=[x1,x2,x3,x4]
V=np.array([x1,x2,x3,x4]).T
S=np.cov(V)
SI = np.linalg.inv(S)
print("两两间的各值距离,欧氏距离、canberra、马氏距离、曼哈顿距离、切氏距离、明氏距离、角度相似系数:")
for i in range(len(x)):
for j in range(i+1,len(x)):
print("x{}-x{}:".format(i+1,j+1),distance.euclidean(x[i],x[j]))
print("x{}-x{}:".format(i + 1, j + 1), distance.canberra(x[i], x[j]))
print("x{}-x{}:".format(i + 1, j +