【问题标题】:sklearn PCA - Calculate % of variance retained for choosing ksklearn PCA - 计算为选择 k 保留的方差百分比
【发布时间】:2016-02-04 04:38:05
【问题描述】:

我正在使用 scikit learn PCA 并尝试选择满足 1-(sum i 1 to k Sii)/(sum j 1 to n Sjj)

  1. scikit learn 是否具有返回给定方差保留百分比阈值的最小分量的函数?
  2. 有没有更有效的方法来提出 n_component?

谢谢。

【问题讨论】:

    标签: machine-learning scikit-learn pca


    【解决方案1】:

    只需将n_components 设置为float,它将用作解释方差的下限。

    来自scikit-learn documentation

    n_components : int、None 或 string

    要保留的组件数。如果未设置 n_components 则保留所有组件: n_components == min(n_samples, n_features) if n_components == 'mle', Minka的MLE用于猜测维度

    【讨论】:

    • 我们在代码的什么地方指定我们需要保留 x% 的方差?
    • 答案中字面意思是这样。将 n_components 作为浮点数传递给 PCA 构造函数。
    【解决方案2】:

    关于您的问题 #1 - 获得给定方差保留百分比阈值的最少组件数:

    from sklearn.decomposition import PCA as sklearnPCA
    sklearn_pca = sklearnPCA(n_components = 0.99, svd_solver ='full')
    

    关于您的问题 #2 - 以下论点 - Minka 的最大似然估计 - 将猜测主成分的数量:

    ...
    sklearn_pca = sklearnPCA(n_components = "mle", svd_solver ="full")
    

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2019-12-09
      • 2020-12-25
      • 1970-01-01
      相关资源
      最近更新 更多