Cargas factoriales utilizando sklearn

Quiero las correlaciones entre variables individuales y componentes principales en python. Estoy usando PCA en sklearn. No entiendo cómo puedo obtener la matriz de carga después de haber descompuesto mis datos. Mi código está aquí.

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 no menciona cómo se puede lograr esto.

Creo que @RickardSjogren está describiendo los vectores propios, mientras que @BigPanda está dando las cargas. Hay una gran diferencia: Cargas vs vectores propios en PCA: ¿cuándo usar uno u otro? .

He creado esta clase de PCA con un método de loadings .

Las cargas, según lo indicado por pca.components_ * np.sqrt(pca.explained_variance_) , son más análogos a los coeficientes en una regresión lineal múltiple. No uso .T aquí porque en la clase PCA vinculada anteriormente, los componentes ya están transpuestos. numpy.linalg.svd produce u, s, and vt , donde vt es la transposición hermetiana, por lo que primero debe volver a v con vt.T

También hay otro detalle importante: los signos (positivos / negativos) en los componentes y las cargas en sklearn.PCA pueden diferir de paquetes como R. Más sobre esto aquí:

En sklearn.decomposition.PCA, ¿por qué los componentes son negativos? .

Según este blog, las filas de pca.components_ son los vectores de carga. Asi que:

 loadings = pca.components_ 

Multiplique cada componente por la raíz cuadrada de su valor propio correspondiente:

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

Esto debería producir su matriz de carga.