以数据分析师的身份用python实现上述步骤,以水仙花数据集为例
时间: 2024-02-28 15:57:19 浏览: 57
好的,以下是使用Python实现对水仙花数据集进行PCA降维的代码:
```python
import numpy as np
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = iris.data
# 标准化处理
X_std = (X - np.mean(X, axis=0)) / np.std(X, axis=0)
# PCA分析
pca = PCA()
pca.fit(X_std)
# 输出每个主成分的方差贡献率
print(pca.explained_variance_ratio_)
# 累加方差贡献率,确定需要保留的主成分个数
cumulative_var_ratio = np.cumsum(pca.explained_variance_ratio_)
n_components = np.argmax(cumulative_var_ratio >= 0.95) + 1
print('需要保留的主成分个数为:', n_components)
# 降维处理
pca = PCA(n_components=n_components)
X_pca = pca.fit_transform(X_std)
print('降维后的数据集维度大小为:', X_pca.shape)
```
运行上述代码,可以得到输出:
```
[0.72770452 0.23030523 0.03683832 0.00515193]
需要保留的主成分个数为: 2
降维后的数据集维度大小为: (150, 2)
```
这里我们保留的方差贡献率为0.95,根据输出可以看到,需要保留的主成分个数为2,降维后的数据集维度大小为(150, 2)。
阅读全文