使用 sklearn 的因子载荷



我想要python中各个变量和主成分之间的相关性。我在 sklearn 中使用 PCA。我不明白分解数据后如何实现加载矩阵?我的代码在这里。

iris = load_iris()
data, y = iris.data, iris.target
pca = PCA(n_components=2)
transformed_data = pca.fit(data).transform(data)
eigenValues = pca.explained_variance_ratio_

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html 没有提到如何实现这一目标。

将每个分量乘以其相应特征值的平方根:

pca.components_.T * np.sqrt(pca.explained_variance_)

这应该会产生您的加载矩阵。

我认为@RickardSjogren是在描述特征向量,而@BigPanda是在给出载荷。 有一个很大的区别:PCA中的加载与特征向量:何时使用一个或另一个?

我用loadings方法创建了这个 PCA 类。

载荷,由pca.components_ * np.sqrt(pca.explained_variance_)给出,更类似于多元线性回归中的系数。 我在这里不使用.T,因为在上面链接的 PCA 类中,组件已经转置。 numpy.linalg.svd产生u, s, and vt,其中vt是赫尔墨斯转置,所以你首先需要回到vvt.T

还有一个重要的细节:组件上的符号(正/负)和sklearn.PCA中的负载可能与 R 等包装不同。 更多关于这里:

在sklearn.decomposition.PCA中,为什么components_负数?。

根据这个博客,pca.components_行是加载向量。所以:

loadings = pca.components_

相关内容

  • 没有找到相关文章

最新更新