p y t hon实现PCA
时间: 2024-04-30 21:24:38 浏览: 121
PCA(Principal Component Analysis,主成分分析)是一种常用的数据降维方法,可以将高维数据转化为低维数据,从而方便后续的数据处理和分析。下面是Python实现PCA的示例代码:
```python
import numpy as np
def pca(X, k):
"""
X: 数据矩阵,每行表示一个样本,每列表示一个特征
k: 选择的主成分个数
"""
# 中心化数据
X_mean = np.mean(X, axis=0)
X_centered = X - X_mean
# 计算协方差矩阵
cov_mat = np.cov(X_centered, rowvar=False)
# 计算特征值和特征向量
eig_vals, eig_vecs = np.linalg.eig(cov_mat)
# 排序特征值和特征向量
eig_pairs = [(np.abs(eig_vals[i]), eig_vecs[:,i]) for i in range(len(eig_vals))]
eig_pairs.sort(key=lambda x: x[0], reverse=True)
# 选择前k个特征向量构建投影矩阵
proj_mat = np.hstack((eig_pairs[i][1].reshape(-1,1) for i in range(k)))
# 转化数据
transformed = X_centered.dot(proj_mat)
return transformed
```
使用示例:
```python
# 生成随机数据
X = np.random.rand(100, 3)
# 使用PCA进行降维
X_pca = pca(X, 2)
print(X_pca.shape) # (100, 2)
```
阅读全文