先导入必要的库:

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
``
已知第一类向量02-2035-3-5第二类向量35138601求两类均值和协方差矩阵并求出0235分别在两类中的马氏距离请给出具体python计算代码

原文地址: https://www.cveoy.top/t/topic/fsbv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录