实现PCA编码,并用matplotlib实现PCA主特征数据显示
时间: 2024-03-01 15:53:46 浏览: 49
matlab实现PCA代码
好的,以下是一个简单的Python代码实现PCA编码,并用matplotlib实现PCA主特征数据显示的方法。
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成二维数据集
data = np.random.randn(100, 2)
# 计算数据的均值
mean = np.mean(data, axis=0)
# 中心化数据
centered_data = data - mean
# 计算协方差矩阵
covariance_matrix = np.cov(centered_data.T)
# 计算特征向量和特征值
eigenvalues, eigenvectors = np.linalg.eig(covariance_matrix)
# 对特征值进行排序
idx = eigenvalues.argsort()[::-1]
eigenvalues = eigenvalues[idx]
eigenvectors = eigenvectors[:,idx]
# 选取前k个特征向量
k = 1
selected_eigenvectors = eigenvectors[:,:k]
# 降维
reduced_data = centered_data.dot(selected_eigenvectors)
# 可视化
plt.scatter(data[:,0], data[:,1], alpha=0.5)
plt.scatter(reduced_data[:,0], np.zeros(100), alpha=0.5, c='r')
plt.show()
```
在上面的代码中,我们首先生成了一个二维数据集,然后计算了数据的均值,对数据进行中心化,计算了协方差矩阵,以及特征向量和特征值。然后我们对特征值进行排序,选取前k个特征向量,进行降维,并用matplotlib将降维后的数据可视化。
阅读全文