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?