python写一段PCA根据方差贡献率确定降维数的代码
时间: 2023-07-10 07:29:39 浏览: 202
PCA降维,python代码
5星 · 资源好评率100%
好的,下面是一份简单的 Python 代码,用于基于方差贡献率确定降维数的 PCA:
```python
import numpy as np
from sklearn.decomposition import PCA
def pca_with_variance_ratio(data, target_variance_ratio):
pca = PCA()
pca.fit(data)
variance_ratio = np.cumsum(pca.explained_variance_ratio_)
n_components = np.argmax(variance_ratio >= target_variance_ratio) + 1
pca = PCA(n_components=n_components)
pca.fit(data)
return pca.transform(data)
```
其中,`data` 是输入数据,`target_variance_ratio` 是目标方差贡献率,这个函数会返回降维后的数据。首先,我们使用 `PCA` 函数训练模型,并计算方差贡献率的累积和。然后,我们找到第一个大于等于目标方差贡献率的位置,这个位置就是我们要降维到的维数。最后,我们使用这个维数重新训练 `PCA` 模型,并对输入数据进行降维。
阅读全文