马氏距离(Mahalanobis Distance)是一种计算两个样本点之间距离的方法,它考虑了不同属性之间的相关性。在Python中,我们可以使用NumPy库的mahalanobis函数来计算两个向量之间的马氏距离。
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
covariance = np.array([[1, 0.5, 0], [0.5, 1, 0], [0, 0, 1]])
print(np.linalg.inv(covariance))
# [[ 1.33333333, -0.66666667, 0. ],
# [-0.66666667, 1.33333333, 0. ],
# [ 0. , 0. , 1. ]]
distance = np.sqrt((x - y).T @ np.linalg.inv(covariance) @ (x - y))
print(distance)
# 3.2310988844688093
在上面的代码中,我们定义了两个向量
需要注意的是,当协方差矩阵