繁体   English   中英

当 n_components 为 None 时如何解释 Scikit-learn 的 PCA?

[英]How to interpret Scikit-learn's PCA when n_components are None?

我对标题中提到的问题感到困惑。 n_components=None是否意味着在输入中没有进行任何转换,或者它已经转换到新的维度空间,而不是通常的“减少”(保留少数具有高特征值的组件)并保留所有新的合成特征? 文档为我建议了前者:

因此, None 情况导致: n_components == min(n_samples, n_features) - 1

但这并不完全清楚,此外,如果它确实意味着保留所有组件,为什么这些组件的数量等于n_components == min(n_samples, n_features) - 1 ,为什么不n_features

但是,我找到了另一种选择(如果没有,则放弃整个 PCA 步骤),我从未听说过在不省略一些特征向量的情况下应用 PCA ......

根据官方文档 -

如果 svd_solver == 'arpack',组件的数量必须严格小于 n_features 和 n_samples 的最小值。 因此, None 情况导致: n_components == min(n_samples, n_features) - 1

所以它取决于用于特征向量的求解器的类型(可以通过参数设置)。

如果 arpack:运行 SVD 截断为 n_components,通过 scipy.sparse.linalg.svds 调用 ARPACK 求解器。 它严格要求 0 < n_components < min(X.shape)

至于您关于删除整个 PCA 步骤的第二个查询,这完全取决于您要解决的问题。 由于 PCA 组件按降序解释数据的变化(第一个组件解释最大方差,最后一个组件解释最小方差),因此对于特定任务来说,具有一些解释更多方差的特征可能很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM