解释Scikit中的差异学习PCA

时间:2016-03-14 16:31:51

标签: python scikit-learn pca

我在scikit中使用PCA - 学习了解我的数据集中的功能。

因此,我使用以下代码来提取解释的方差。

pca = PCA().fit(df)
result = pd.Series(pca.explained_variance_, index=df.columns)

但是,根据scikit-learn的PCA代码,解释方差计算如下:

U, S, V = linalg.svd(X, full_matrices=False)
explained_variance_ = (S ** 2) / n_samples

https://github.com/scikit-learn/scikit-learn/blob/51a765acfa4c5d1ec05fc4b406968ad233c75162/sklearn/decomposition/pca.py

在Scipy的svd文档中,S在返回时会被排序。

  

s:ndarray奇异值,按非递增顺序排序。的   形状(K,),K = min(M,N)。

http://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html#scipy.linalg.svd

因此,列的顺序与PCA返回的解释方差的顺序之间没有关系。

结果,上面的代码不起作用。有没有办法获得每个功能的解释方差?我不是统计学家,所以我可能错过了一些东西。

0 个答案:

没有答案