Python代码实现PCA算法并可视化显示 
时间: 2023-05-18 14:07:15 浏览: 65
可以的,以下是一个Python实现PCA算法的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
def pca(X, k):
# 计算均值
mean = np.mean(X, axis=0)
# 中心化
X_centered = X - mean
# 计算协方差矩阵
cov = np.cov(X_centered, rowvar=False)
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eigh(cov)
# 选取前k个特征向量
top_k_eigenvectors = eigenvectors[:, -k:]
# 将数据投影到选取的特征向量上
X_reduced = np.dot(X_centered, top_k_eigenvectors)
return X_reduced
# 生成随机数据
X = np.random.rand(100, 2)
# 对数据进行PCA降维
X_reduced = pca(X, 1)
# 可视化显示
plt.scatter(X[:, 0], X[:, 1])
plt.scatter(X_reduced[:, 0], np.zeros_like(X_reduced), color='r')
plt.show()
```
这段代码实现了对随机数据的PCA降维,并将结果可视化显示。其中,函数pca实现了PCA算法,参数X是输入数据,k是要降到的维数。函数返回降维后的数据。在可视化部分,我们将原始数据用蓝色点表示,降维后的数据用红色点表示。
相关推荐

















