python实现PCA代码
时间: 2023-09-30 18:06:29 浏览: 91
PCA.zip_PCA python实现_PCA 代码_loudi4x_pca python代码_python pca源代码
下面是一个简单的 Python 代码实现 PCA:
```python
import numpy as np
def pca(X, k):
# X是数据矩阵,k是指定的降维后的特征数
# 计算均值向量并将每个向量减去均值向量得到零均值矩阵
mean_X = np.mean(X, axis=0)
zero_mean_X = X - mean_X
# 计算协方差矩阵
cov_X = np.cov(zero_mean_X, rowvar=False)
# 计算特征值和特征向量
eig_val, eig_vec = np.linalg.eig(cov_X)
# 将特征值从大到小排序,并取出前k个特征值对应的特征向量
eig_pairs = [(np.abs(eig_val[i]), eig_vec[:,i]) for i in range(len(eig_val))]
eig_pairs.sort(reverse=True)
feature = np.array([ele[1] for ele in eig_pairs[:k]])
# 将原数据投影到新空间中
new_X = np.dot(zero_mean_X, feature.T)
return new_X
```
这段代码中,我们首先计算均值向量并将每个向量减去均值向量得到零均值矩阵。然后计算协方差矩阵,再通过计算特征值和特征向量得到降维后的特征向量。最后,将原数据投影到新空间中得到降维后的数据。
阅读全文