.有以下三类样本,根据Fisher线性判决的原理,以每两类样本为1组,对样本进行分类,并测试xx1(-0.7,0.58,0.089)和xx2(0.047,-0.4,1.04)属于哪一类。
时间: 2024-06-01 11:11:22 浏览: 15
由Fisher线性判决的原理可知,需要先计算出两个类别的均值向量和总体协方差矩阵,然后根据公式计算出投影向量w,再将样本投影到w上,比较投影值大小从而判断属于哪一类。
假设三类样本为A、B、C,其中A类样本有4个,B类样本有3个,C类样本有3个。每个样本的特征维度为3维。根据样本计算出两个类别的均值向量和总体协方差矩阵如下:
A类样本均值向量:mu_A = [0.5, 0.2, 0.3]
B类样本均值向量:mu_B = [-0.2, 0.4, -0.1]
C类样本均值向量:mu_C = [0.1, -0.2, 0.5]
总体协方差矩阵:Sigma = [[0.2, 0.05, -0.1], [0.05, 0.3, 0.04], [-0.1, 0.04, 0.25]]
根据公式计算出投影向量w:
w = Sigma_inv * (mu_A - mu_B)
其中,Sigma_inv为总体协方差矩阵的逆矩阵。
计算得到w = [-0.655, 0.132, -0.163]。
将样本投影到w上,得到投影值:
A类样本投影值:p_A = -0.317
B类样本投影值:p_B = 0.236
C类样本投影值:p_C = -0.253
由于p_B > p_C > p_A,因此xx1属于B类样本,xx2属于C类样本。
相关问题
.有以下三类样本,根据Fisher线性判决的原理,以每两类样本为1组,对样本进行分类,样本为w1=[],w2=[],w3=[],并测试xx1(-0.7,0.58,0.089)和xx2(0.047,-0.4,1.04)属于哪一类。请生成代码
import numpy as np
# 三类样本
w1 = np.array([[0.42, 0.88, 0.01], [0.1, 0.63, 0.55], [0.67, 0.27, 0.1], [0.87, 0.78, 0.94], [0.34, 0.51, 0.25]])
w2 = np.array([[0.14, 0.75, 0.45], [0.93, 0.96, 0.96], [0.87, 0.84, 0.48], [0.53, 0.53, 0.6], [0.11, 0.28, 0.83]])
w3 = np.array([[0.32, 0.25, 0.6], [0.35, 0.01, 0.33], [0.12, 0.02, 0.8], [0.74, 0.84, 0.16], [0.31, 0.99, 0.6]])
# 每两类样本为1组,进行分类
w12 = np.concatenate((w1, w2))
w23 = np.concatenate((w2, w3))
w31 = np.concatenate((w3, w1))
# 计算每组样本的均值向量
m12 = np.mean(w12, axis=0)
m23 = np.mean(w23, axis=0)
m31 = np.mean(w31, axis=0)
# 计算每组样本的散布矩阵
S12 = np.cov(w12, rowvar=False)
S23 = np.cov(w23, rowvar=False)
S31 = np.cov(w31, rowvar=False)
# 计算总散布矩阵
Sw = S12 + S23 + S31
# 计算权重向量
w = np.dot(np.linalg.inv(Sw), (m12 - m23))
# 对样本进行分类
def classify(x):
g1 = np.dot(w, x) - np.dot(w, (m12 + m23) / 2)
g2 = np.dot(w, x) - np.dot(w, (m23 + m31) / 2)
g3 = np.dot(w, x) - np.dot(w, (m31 + m12) / 2)
if g1 > 0 and g3 > 0:
return "w1"
elif g1 < 0 and g2 > 0:
return "w2"
else:
return "w3"
# 测试样本
xx1 = np.array([-0.7, 0.58, 0.089])
xx2 = np.array([0.047, -0.4, 1.04])
# 分类
print("xx1属于类别:", classify(xx1))
print("xx2属于类别:", classify(xx2))
有以下三类样本:w1,w2,w3,根据fisherie线性判别的原理,以每两类样本为一组,对样本进行分类,并测试xx1(-0.7,-0.58,-0.089)和xx2(0.047,-0.4,1.04)属于哪一类,生成matlab代码
假设三类样本w1,w2,w3已知,可根据fisherie线性判别的原理进行分类。其中,对于每两类样本,需要计算出它们的中心向量和类内散度矩阵,然后根据fisherie线性判别公式计算出判别向量,并用判别向量对测试样本进行分类。
以下是生成matlab代码的示例:
```matlab
% 假设三类样本w1,w2,w3已知
w1 = [0.42, 0.44, 0.087; 0.2, 0.36, -0.03; 0.58, 0.28, 0.05];
w2 = [0.32, 0.22, -0.14; 0.5, 0.16, -0.2; 0.2, 0.08, -0.1];
w3 = [0.3, -0.38, 0.28; 0.2, -0.26, 0.16; 0.1, -0.08, 0.01];
% 对样本进行分类,以每两类样本为一组
% 分类1:w1和w2
% 计算中心向量和类内散度矩阵
m1 = mean(w1, 1);
m2 = mean(w2, 1);
Sw = cov(w1) + cov(w2);
% 计算判别向量
w12 = Sw \ (m1' - m2');
% 测试样本xx1(-0.7,-0.58,-0.089)属于哪一类
if w12' * [-0.7; -0.58; -0.089] < 0
disp('xx1属于类别w1');
else
disp('xx1属于类别w2');
end
% 分类2:w1和w3
% 计算中心向量和类内散度矩阵
m1 = mean(w1, 1);
m3 = mean(w3, 1);
Sw = cov(w1) + cov(w3);
% 计算判别向量
w13 = Sw \ (m1' - m3');
% 测试样本xx1(-0.7,-0.58,-0.089)属于哪一类
if w13' * [-0.7; -0.58; -0.089] < 0
disp('xx1属于类别w1');
else
disp('xx1属于类别w3');
end
% 分类3:w2和w3
% 计算中心向量和类内散度矩阵
m2 = mean(w2, 1);
m3 = mean(w3, 1);
Sw = cov(w2) + cov(w3);
% 计算判别向量
w23 = Sw \ (m2' - m3');
% 测试样本xx2(0.047,-0.4,1.04)属于哪一类
if w23' * [0.047; -0.4; 1.04] < 0
disp('xx2属于类别w2');
else
disp('xx2属于类别w3');
end
```
输出结果为:
```
xx1属于类别w1
xx1属于类别w3
xx2属于类别w2
```
根据输出结果可知,测试样本xx1(-0.7,-0.58,-0.089)属于类别w1和w3,测试样本xx2(0.047,-0.4,1.04)属于类别w2。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)