Dieses Mal werde ich Ihnen zeigen, wie man die Mahalanobis-Distanz in Python implementiert und welche Vorsichtsmaßnahmen für die Implementierung des Mahalanobis-Distanzalgorithmus in Python gelten. Das Folgende ist ein praktischer Fall Schauen Sie mal rein.
Das Beispiel in diesem Artikel beschreibt die Berechnung des in Python implementierten Mahalanobis-Distanzalgorithmus. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:
Ich habe die -Funktion geschrieben und die
Python-Implementierung aufgerufen des Mahalanobis-Distanz-Quellcodes:
# 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)
Laufergebnis:
Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall in diesem Artikel gelesen haben Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So konvertieren Sie einen Python-String in ein zweidimensionales Array
Abhörereignis des Ereignisemitters
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Mahalanobis-Distanz in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!