使用python进行PCA分解:具有相关性

Guf*_*oru 2 python pca scikit-learn

我现在关注下一个主题:如何在Python中使用PCA/SVD进行特征选择和识别? 现在,我们使用PCA方法在Python中分解我们的数据集并使用它.sklearn.decomposition.PCA使用属性components_我们得到所有组件.现在我们有非常相似的目标:只需要前几个组件(这部分不是问题),看看每个PCA组件的输入功能比例(知道哪些功能对我们来说非常重要).怎么可能这样做?另一个问题是,python lybrary有另一个主成分分析的实现吗?

ogr*_*sel 7

每个PCA组件的输入功能比例(知道哪些功能对我们来说非常重要).怎么可能这样做?

components_阵列具有形状(n_components, n_features)等等components_[i, j]已经给你特性的贡献(签字)的权重j来组成i.

如果您想获得有助于组件的前3个特征的索引,i而不管符号如何,您可以:

numpy.abs(pca.component_[i]).argsort()[::-1][:3]
Run Code Online (Sandbox Code Playgroud)

注意:[::-1]符号表示可以反转数组的顺序:

>>> import numpy as np
>>> np.array([1, 2, 3])[::-1]
array([3, 2, 1])
Run Code Online (Sandbox Code Playgroud)

另一个问题是,python库是否是Principal Component Analysis的另一个实现?

PCA只是中心数据集的截断奇异值分解.numpy.linalg.svd如果您愿意,可以直接使用.有关详细信息,请查看PCA的scikit-learn实现源代码.