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

2022-10-04 20:00:20 字數 908 閱讀 1181

我給寫成函式呼叫了

python實現馬氏距離源**:

# encoding: utf-8www.cppcns.com

from __future__ import division

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

import nu程式設計客棧mpy 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 __nam程式設計客棧e_程式設計客棧_ == '__main__':

# 第一列

x = [3, 5, 2, 8]

# 第二列

y = [4, 6, 2, 4]

mashi_distance(x,y)

執行結果:

馬氏距離詳解

三 例項認知 四 公式推導 致謝從下往上的一段50公尺長的坡道路,下面定乙個a點,上面定b乙個點。假設有兩種情況從a到b a 坐手扶電梯上去。b 從手扶電梯旁邊的樓梯爬上去。兩種情況下我們分別會產生兩種不同的主觀感受,坐電梯輕鬆愉快,感覺很快就從a到了b a與b真近 走樓梯爬的氣喘吁吁很累,感覺走了...

距離度量之馬氏距離

用來度量乙個樣本點 與資料分布為 的集合的距離。假設樣本點為 資料集分布的均值為 協方差矩陣為 則這個樣本點 與資料集合的馬氏距離為 馬氏距離也可以衡量兩個來自同一分布的樣本x和y的相似性 當樣本集合的協方差矩陣是單位矩陣時,即樣本的各個維度上的方差均為 馬氏距離就等於歐式距離相等。當協方差矩陣是對...

距離度量之馬氏距離

用來度量乙個樣本點 與資料分布為 的集合的距離。假設樣本點為 資料集分布的均值為 協方差矩陣為 則這個樣本點 與資料集合的馬氏距離為 馬氏距離也可以衡量兩個來自同一分布的樣本x和y的相似性 當樣本集合的協方差矩陣是單位矩陣時,即樣本的各個維度上的方差均為 馬氏距離就等於歐式距離相等。當協方差矩陣是對...