如何用Python实现主成分分析法
时间: 2023-11-12 11:00:05 浏览: 162
你好,主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维方法。下面是用 Python 实现 PCA 的步骤:
1. 数据预处理:将数据进行标准化处理,使得每个特征的均值为0,方差为1。
2. 计算协方差矩阵:使用numpy库中的cov函数计算协方差矩阵。
3. 计算特征值和特征向量:使用numpy库中的eig函数计算协方差矩阵的特征值和特征向量。
4. 选择主成分:根据特征值的大小选择前k个主成分。
5. 转换样本:将原始数据样本转换到新的k维空间中。
下面是一个简单的实现示例:
```python
import numpy as np
# 生成测试数据
data = np.array([[2, 8, 4, 5], [6, 3, 0, 8], [5, 4, 9, 1], [8, 1, 2, 6]])
# Step 1: 数据标准化
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)
std_data = (data - mean) / std
# Step 2: 计算协方差矩阵
cov_matrix = np.cov(std_data.T)
# Step 3: 计算特征值和特征向量
eig_vals, eig_vecs = np.linalg.eig(cov_matrix)
# Step 4: 选择主成分
k = 2
top_k_eig_vecs = eig_vecs[:, :k]
# Step 5: 转换样本
new_data = np.dot(std_data, top_k_eig_vecs)
print(new_data)
```
输出结果为:
```
[[ 1.8691598 0.42258459]
[-1.25701989 -0.62149834]
[ 0.21768885 1.89924727]
[-0.83082896 -1.70033352]]
```
可以看到,数据被转换到了一个新的2维空间中。
阅读全文