首頁  >  文章  >  後端開發  >  Python怎麼達成馬氏距離

Python怎麼達成馬氏距離

php中世界最好的语言
php中世界最好的语言原創
2018-04-09 10:12:358948瀏覽

這次帶給大家Python怎麼實現馬氏距離,Python實現馬氏距離演算法的注意事項有哪些,下面就是實戰案例,一起來看一下。

本文實例講述了Python實現的計算馬氏距離演算法。分享給大家供大家參考,具體如下:

我給寫成函數呼叫了

python實作馬氏距離原始碼:

# encoding: utf-8
from future import pision
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)

運行結果:

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

python字串如何轉換為二維陣列

Event emitter的監聽事件

以上是Python怎麼達成馬氏距離的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn