用上述数据集进行高斯模式识别
时间: 2023-07-09 18:05:10 浏览: 49
高斯模式识别是一种基于概率统计的分类方法,它假设数据集中的每个类别都服从高斯分布。
具体地,对于一个包含$n$个样本的数据集$D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}$,其中$x_i\in\mathbb{R}^d$表示第$i$个样本的$d$个特征,$y_i\in\{1,2,\cdots,C\}$表示第$i$个样本的类别,$C$为类别总数。
假设第$c$个类别的样本服从一个均值为$\mu_c$,协方差矩阵为$\Sigma_c$的多元正态分布,即:
$$
p(x|\mu_c,\Sigma_c)=\frac{1}{(2\pi)^{d/2}|\Sigma_c|^{1/2}}\exp\left(-\frac{1}{2}(x-\mu_c)^T\Sigma_c^{-1}(x-\mu_c)\right)
$$
则第$i$个样本属于类别$c$的概率为:
$$
p(y_i=c|x_i,\mu,\Sigma)=\frac{p(x_i|y_i=c,\mu,\Sigma)p(y_i=c|\pi)}{\sum_{k=1}^Cp(x_i|y_i=k,\mu,\Sigma)p(y_i=k|\pi)}
$$
其中,$\mu=\{\mu_1,\mu_2,\cdots,\mu_C\}$表示所有类别的均值向量,$\Sigma=\{\Sigma_1,\Sigma_2,\cdots,\Sigma_C\}$表示所有类别的协方差矩阵,$\pi=\{\pi_1,\pi_2,\cdots,\pi_C\}$表示类别的先验概率。
假设我们已知$\mu$、$\Sigma$和$\pi$,则可以通过上述公式对任意一个样本进行分类。
假设我们的数据集中有三个类别,每个类别有100个样本,每个样本有两个特征。我们可以通过以下代码实现高斯模式识别:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据集
np.random.seed(0)
mean1 = [0, 0]
cov1 = [[1, 0], [0, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov1, 100).T
mean2 = [2, 2]
cov2 = [[1, 0], [0, 1]]
x2, y2 = np.random.multivariate_normal(mean2, cov2, 100).T
mean3 = [-2, 2]
cov3 = [[1, 0], [0, 1]]
x3, y3 = np.random.multivariate_normal(mean3, cov3, 100).T
# 绘制数据集
plt.figure()
plt.scatter(x1, y1, c='b', marker='o', label='class 1')
plt.scatter(x2, y2, c='g', marker='s', label='class 2')
plt.scatter(x3, y3, c='r', marker='^', label='class 3')
plt.legend()
plt.show()
# 计算均值向量和协方差矩阵
mean = np.array([np.mean(np.vstack((x1, x2, x3)), axis=1),
np.mean(np.vstack((y1, y2, y3)), axis=1)]).T
cov = [np.cov(np.vstack((x1, x2, x3))), np.cov(np.vstack((y1, y2, y3)))]
# 计算类别的先验概率
pi = [1/3, 1/3, 1/3]
# 对测试样本进行分类
test_x = [0, 0]
p = []
for c in range(3):
p_x_given_c = np.exp(-0.5 * np.dot(np.dot((test_x - mean[c]), np.linalg.inv(cov[c])), (test_x - mean[c]).T))
p_c_given_x = p_x_given_c * pi[c]
p.append(p_c_given_x)
print('test_x belongs to class', np.argmax(p) + 1)
```
上述代码中,我们首先生成了一个包含三个类别的数据集,每个类别有100个样本,每个样本有两个特征。然后,我们通过计算每个类别的均值向量和协方差矩阵,以及类别的先验概率,来对一个测试样本进行分类。在上述代码中,我们假设测试样本的特征向量为$[0,0]$。最后,我们输出测试样本所属的类别。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)