4 votos

Problema con los resultados de valores de componentes del ACP

Estoy realizando PCA en un conjunto de datos de (28 características + 1 clase de etiqueta) y 11M filas (muestras) usando el siguiente código:

from sklearn.decomposition import PCA
import pandas as pd

df = pd.read_csv('HIGGS.csv', sep=',', header=None)

df_labels = df[df.columns[0]]
df_features = df.drop(df.columns[0], axis=1)
pca = PCA()
pca.fit(df_features.values)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_ratio_.shape)
transformed_data = pca.transform(df_features.values)

El pca.explained_variance_ratio_ (o valores propios) son los siguientes:

[0.11581302 0.09659324 0.08451179 0.07000956 0.0641502  0.05651781
 0.055588   0.05446682 0.05291956 0.04468113 0.04248516 0.04108151
 0.03885671 0.03775394 0.0255504  0.02181292 0.01979832 0.0185323
 0.0164828  0.01047363 0.00779365 0.00702242 0.00586635 0.00531234
 0.00300572 0.00135565 0.00109707 0.00046801]

Basado en el explained_variance_ratio_, no sé si hay algo mal aquí. El mayor componente es del 11%, frente al hecho de que nos debería llegar a los valores, a partir del 99% y así. Implica que el conjunto de datos de las necesidades de algunos de preprocesamiento, tales como asegurar que los datos están en una distribución normal?

6voto

James Puntos 21

No hay ninguna regla que usted necesita para tener una alta cantidad de varianza explicada en el primer componente principal.

PCA encuentra ortogonal de las combinaciones lineales de sus variables originales, tales que el primer componente principal tiene la mayor varianza, el segundo el segundo más alto, etc. Sin embargo, el 'mayor' no significa que debe ser una gran cantidad absoluta, sólo que no hay ninguna combinación lineal que tiene mayor varianza.

Pero PCA sólo maximiza la varianza, no es una herramienta mágica para encontrar el más interesante combinación de variables. Si los datos provienen de una fuertemente sesgada distribución de probabilidad, a continuación, esta variación no es muy informativo medida de la variabilidad.


En cuanto a cómo proceder:

  1. Considerar que la finalidad de su análisis y de los datos de proceso de generación. Es PCA realmente la mejor manera de hacer lo que estamos tratando de lograr? (Reducción de dimensiones, orthogonalization, ...)
  2. Si la respuesta a (1) es sí, entonces usted puede considerar la transformación de las variables de tal manera que sus varianzas son más representativos de su variabilidad. Usted puede también concluir que las variables ya son aproximadamente normales, en cuyo caso el 11% es, aparentemente, la mayor cantidad de la varianza total que puede ser explicado en una única combinación lineal de sus variables originales.
  3. Son todas las variables medidas en la misma escala? Son muy diferentes cosas en diferentes escalas? PCA no es invariante a la escala (la varianza depende de la escala!), y si la escala o no tiene implicaciones importantes para saber cómo se pueden interpretar los resultados.

Tener una mirada en el otro PCA preguntas relacionadas con aquí (por ejemplo este). Si usted entender mejor lo PCA, también entender mejor los resultados que obtiene, y lo que es más importante, si es la herramienta correcta para el trabajo, para empezar.

2voto

user3294195 Puntos 166

Si los primeros valores propios algunos no explican la mayor parte de la varianza de los datos, significa una de dos cosas:

  • Los datos son sólo ruido. Intente ejecutar PCA en una matriz de puntos independientes muestreadas de una gaussiana estándar. Verá que los valores propios son mucho más uniformemente disperso.
  • PCA básico no es suficiente para la reducción de la dimensionalidad de los datos. Si este es el caso, puede que desee probar métodos más avanzados, como el núcleo PCA.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X