欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 馬氏距離

錢多多2年前10瀏覽0評論

馬氏距離(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

在上面的代碼中,我們定義了兩個向量,以及一個協方差矩陣。接著,我們使用NumPy的linalg.inv函數計算協方差矩陣的逆矩陣,然后使用向量的內積計算馬氏距離。

需要注意的是,當協方差矩陣不滿秩(即存在某些屬性完全相關)的時候,逆矩陣并不存在。這種情況下,可以使用偽逆矩陣(即Moore-Penrose逆)來代替。