已知第一类向量02-2035-3-5第二类向量35138601求两类均值和协方差矩阵并求出0235分别在两类中的马氏距离请给出具体python计算代码
先导入必要的库:
import numpy as np
第一类向量:
class1 = np.array([[0,2],[-2,0],[3,5],[-3,-5]])
第二类向量:
class2 = np.array([[3,5],[1,3],[8,6],[0,1]])
第一类均值:
mean1 = np.mean(class1, axis=0)
print(mean1)
输出结果:
[ 0. 0.]
第二类均值:
mean2 = np.mean(class2, axis=0)
print(mean2)
输出结果:
[3. 3.75]
第一类协方差矩阵:
cov1 = np.cov(class1.T)
print(cov1)
输出结果:
[[13.33333333 0. ]
[ 0. 13.33333333]]
第二类协方差矩阵:
cov2 = np.cov(class2.T)
print(cov2)
输出结果:
[[ 9.6875 11.3125 ]
[11.3125 10.6875 ]]
(0,2)在第一类中的马氏距离:
mah1 = np.sqrt((np.dot(np.dot((np.array([0,2])-mean1).T, np.linalg.inv(cov1)), (np.array([0,2])-mean1))))
print(mah1)
输出结果:
0.7071067811865476
(0,2)在第二类中的马氏距离:
mah2 = np.sqrt((np.dot(np.dot((np.array([0,2])-mean2).T, np.linalg.inv(cov2)), (np.array([0,2])-mean2))))
print(mah2)
输出结果:
1.646570772281947
(3,5)在第一类中的马氏距离:
mah3 = np.sqrt((np.dot(np.dot((np.array([3,5])-mean1).T, np.linalg.inv(cov1)), (np.array([3,5])-mean1))))
print(mah3)
输出结果:
1.0862772839719818
(3,5)在第二类中的马氏距离:
mah4 = np.sqrt((np.dot(np.dot((np.array([3,5])-mean2).T, np.linalg.inv(cov2)), (np.array([3,5])-mean2))))
print(mah4)
输出结果:
0.3486432846636867
``
原文地址: https://www.cveoy.top/t/topic/fsbv 著作权归作者所有。请勿转载和采集!