python

超轻量级php框架startmvc

Python实现的计算马氏距离算法示例

更新时间:2020-05-27 02:42 作者:startmvc
本文实例讲述了Python实现的计算马氏距离算法。分享给大家供大家参考,具体如下:我给写

本文实例讲述了Python实现的计算马氏距离算法。分享给大家供大家参考,具体如下:

我给写成函数调用了

python实现马氏距离源代码:


# encoding: utf-8
from __future__ import division
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import numpy as np
def mashi_distance(x,y):
 print x
 print y
 #马氏距离要求样本数要大于维数,否则无法求协方差矩阵
 #此处进行转置,表示10个样本,每个样本2维
 X=np.vstack([x,y])
 print X
 XT=X.T
 print XT
 #方法一:根据公式求解
 S=np.cov(X) #两个维度之间协方差矩阵
 SI = np.linalg.inv(S) #协方差矩阵的逆矩阵
 #马氏距离计算两个样本之间的距离,此处共有4个样本,两两组合,共有6个距离。
 n=XT.shape[0]
 d1=[]
 for i in range(0,n):
 for j in range(i+1,n):
 delta=XT[i]-XT[j]
 d=np.sqrt(np.dot(np.dot(delta,SI),delta.T))
 print d
 d1.append(d)
if __name__ == '__main__':
 # 第一列
 x = [3, 5, 2, 8]
 # 第二列
 y = [4, 6, 2, 4]
 mashi_distance(x,y)

运行结果: