Python實現的計算馬氏距離算法示例


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)

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM