>  기사  >  백엔드 개발  >  Python에서 Mahalanobis 거리를 구현하는 방법

Python에서 Mahalanobis 거리를 구현하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-09 10:12:358949검색

이번에는 Python마할라노비스 거리 구현 방법과, 파이썬에서 마할라노비스 거리 알고리즘을 구현하기 위한 주의사항에 대해 알려드리겠습니다. 실제 사례를 살펴보겠습니다.

이 문서의 예에서는 Python으로 구현된 Mahalanobis 거리 알고리즘 계산을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

Mahalanobis 거리 소스 코드를 구현하기 위해 함수를 작성하고

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 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

파이썬 문자열을 2차원 배열로 변환하는 방법

이벤트 발생기의 수신 이벤트

위 내용은 Python에서 Mahalanobis 거리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.