我在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
在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返回的解释方差的顺序之间没有关系。
结果,上面的代码不起作用。有没有办法获得每个功能的解释方差?我不是统计学家,所以我可能错过了一些东西。