component python scikit-learn pca variance

component - pca python



Encontrar la dimensiĆ³n con mayor variaciĆ³n usando PCA con scikit-learn (1)

Necesito usar pca para identificar las dimensiones con la varianza más alta de un determinado conjunto de datos. Estoy usando el pca de scikit-learn para hacerlo, pero no puedo identificar a partir de la salida del método pca cuáles son los componentes de mis datos con la mayor varianza. Tenga en cuenta que no quiero eliminar esas dimensiones, solo identifíquelas.

Mis datos están organizados como una matriz con 150 filas de datos, cada una con 4 dimensiones. Estoy haciendo lo siguiente:

pca = sklearn.decomposition.PCA() pca.fit(data_matrix)

Cuando imprimo pca.explained_variance_ratio_ , genera un conjunto de relaciones de varianza ordenadas de mayor a menor, pero no me dice a qué dimensión de los datos corresponden (he intentado cambiar el orden de las columnas en mi matriz, y la matriz de relación de varianza resultante fue la misma).

La impresión de pca.components_ me da una matriz de 4x4 (dejé el número original de componentes como argumento a pca) con algunos valores que no puedo entender el significado de ... según la documentación de scikit, deben ser los componentes con la varianza máxima (¿los vectores propios quizás?), pero ningún signo de a qué dimensión se refieren esos valores.

Transformar los datos tampoco ayuda, ya que las dimensiones se modifican de una manera que realmente no puedo saber cuál eran originalmente.

¿Hay alguna manera de obtener esta información con el pca de scikit? Gracias


Las pca.explained_variance_ratio_ devueltas son las variaciones de los componentes principales. Puede usarlos para encontrar cuántas dimensiones (componentes) podrían transformar mejor sus datos mediante pca. Puede usar un umbral para eso (por ejemplo, cuenta cuántas variaciones son mayores que 0.5, entre otras). Después de eso, puede transformar los datos por PCA utilizando el número de dimensiones (componentes) que son iguales a los componentes principales más altos que el umbral utilizado. Los datos reducidos a estas dimensiones son diferentes de los datos en dimensiones en datos originales.

Puedes consultar el código desde este enlace:

http://scikit-learn.org/dev/tutorial/statistical_inference/unsupervised_learning.html#principal-component-analysis-pca