python利用Fisher准则实现对三维模式样本分类
时间: 2024-01-18 09:04:27 浏览: 41
Fisher准则是一种经典的线性判别分析方法,用于将高维数据降维后实现分类。在三维模式样本分类中,我们可以利用Fisher准则将三维数据降到一维,然后通过设定一个阈值来判断分类。
具体的实现步骤如下:
1.计算每个类别的均值向量和协方差矩阵。
2.计算总体均值向量和总体协方差矩阵。
3.计算Fisher准则中的类间离散度矩阵和类内离散度矩阵。
4.计算Fisher准则中的权重向量。
5.将三维数据投影到一维,根据设定的阈值进行分类。
示例代码如下:
```python
import numpy as np
# 生成三维样本数据
class1 = np.random.randn(20, 3)
class2 = np.random.randn(20, 3) + 5
# 计算均值向量和协方差矩阵
mean1 = np.mean(class1, axis=0)
mean2 = np.mean(class2, axis=0)
cov1 = np.cov(class1.T)
cov2 = np.cov(class2.T)
# 计算总体均值向量和总体协方差矩阵
mean_total = (mean1 + mean2) / 2
cov_total = (cov1 + cov2) / 2
# 计算类间离散度矩阵和类内离散度矩阵
sw = cov1 + cov2
sb = np.dot((mean1 - mean2).reshape(-1, 1), (mean1 - mean2).reshape(1, -1))
# 计算权重向量
w = np.dot(np.linalg.inv(sw), (mean1 - mean2))
# 投影到一维
class1_proj = np.dot(class1, w)
class2_proj = np.dot(class2, w)
# 设定阈值进行分类
threshold = (np.mean(class1_proj) + np.mean(class2_proj)) / 2
result1 = class1_proj > threshold
result2 = class2_proj > threshold
```
其中,result1和result2分别是class1和class2的分类结果,True表示属于该类别,False表示不属于。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)