Riy*_*yaz 23 python pca scikit-learn
我想要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_
Run Code Online (Sandbox Code Playgroud)
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html没有提到如何实现这一目标.
小智 13
将每个组件乘以其对应特征值的平方根:
pca.components_.T * np.sqrt(pca.explained_variance_)
Run Code Online (Sandbox Code Playgroud)
这应该产生你的加载矩阵.
Ric*_*ren 11
根据这篇博客,行pca.components_
是加载向量.所以:
loadings = pca.components_
Run Code Online (Sandbox Code Playgroud)
Bra*_*mon 10
我认为@RickardSjogren正在描述特征向量,而@BigPanda正在给出负载.有一个很大的不同:PCA中的负载与特征向量:何时使用一个或另一个?.
我用一种方法创建了这个PCA类loadings
.
如下所示,载荷pca.components_ * np.sqrt(pca.explained_variance_)
更类似于多元线性回归中的系数.我不在.T
这里使用,因为在上面链接的PCA类中,组件已经转置. numpy.linalg.svd
产生u, s, and vt
,vt
Hermetian转置在哪里,所以你首先需要重新v
使用vt.T
.
另外还有一个重要细节:组件和负载上的符号(正/负)sklearn.PCA
可能与R等软件包不同.更多内容如下:
在sklearn.decomposition.PCA中,为什么components_为负?.