基於上篇,有了数据特徵,再来就可以把欧氏距离发展为马氏距离公式
(1)马氏距离的定义:有M个样本向量$X_1$~$X_m$,协方差矩阵为S,平均值记为向量$\mu$,则其中样本向量X到的马氏距离表示为:
而其中向量$X_i$与$X_j$之间的马氏距离定义为:
若协方差矩阵是对角矩阵,则公式变成了标准化欧氏距离公式
用python实现马氏距离
import numpy as np
def get_dist(a, b):
X = np.vstack([a, b])
V = np.cov(X.T)
VI = np.linalg.inv(V)
delta = a - b
return np.sqrt(np.einsum('nj,jk,nk->n', delta, VI, delta))
if __name__ == '__main__':
a = np.array([[1, 3, 564, 675, 6567], [2, 4, 6, 8, 10]])
b = np.array([[1, 3, 5566, 675, 6567], [1, 3, 5, 7, 9]])
print(get_dist(a.T, b.T))
output
[0.44278752 0.44278752 2.62436934 0.44278752 0.44278752]
tags: 2021IT
>>: 初学者跪着学JavaScript Day24 : 原型不会,但你还有class
Python练习题一 import qrcode import sys import os # 需要...
函数要讲其实可以讲很多,但是这边只稍微做一个简单的介绍就好了 今天先来做个简单的介绍以及范例 函数的...
-图片来源:gunther.verheyen 业务人员更了解监管要求和市场,因此IT和安全功能都应...
延续昨天的十六进位转换,还有件重要的事。 隐藏的问题,容量变大了 若是某个需求,资料传送过程中不允许...
4.7 类型转换 实例105 强制转换 实例106 将int 数值自动转型为double 数值 实...