images example component python machine-learning scikit-learn pca feature-selection

python - images - principal component analysis example



Cómo usar scikit-learn PCA para la reducción de características y saber qué características se descartan (3)

La respuesta marcada arriba es incorrecta. El sitio sklearn indica claramente que la matriz components_ está ordenada. por lo que no se puede usar para identificar las características importantes.

components_: array, [n_components, n_features] Ejes principales en el espacio de características, que representan las direcciones de varianza máxima en los datos. Los componentes están ordenados por explanation_variance_.

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

Estoy tratando de ejecutar una PCA en una matriz de dimensiones mxn donde m es el número de características y n el número de muestras.

Supongamos que quiero preservar las características nf con la varianza máxima. Con scikit-learn puedo hacerlo de esta manera:

from sklearn.decomposition import PCA nf = 100 pca = PCA(n_components=nf) # X is the matrix transposed (n samples on the rows, m features on the columns) pca.fit(X) X_new = pca.transform(X)

Ahora, obtengo una nueva matriz X_new que tiene la forma de nx nf. ¿Es posible saber qué características han sido descartadas o retenidas?

Gracias


Las características proyectadas en los componentes principales retendrán la información importante (ejes con variaciones máximas) y los ejes descendentes con pequeñas variaciones. Este comportamiento es similar a la compression (no descartar).

Y X_proj es el mejor nombre de X_new , porque es la proyección de X sobre los principal components

Puede reconstruir el X_rec como

X_rec = pca.inverse_transform(X_proj) # X_proj is originally X_new

Aquí, X_rec está cerca de X , pero PCA eliminó la información less important . Entonces podemos decir que X_rec es X_rec .

En mi opinión, puedo decir que the noise es descarte.


Las características que su objeto PCA ha determinado durante la adaptación están en pca.components_ . El espacio vectorial ortogonal al que abarca pca.components_ se descarta.

Tenga en cuenta que PCA no "descarta" o "retiene" ninguna de sus características predefinidas (codificadas por las columnas que especifique). Mezcla todos ellos (por sumas ponderadas) para encontrar direcciones ortogonales de varianza máxima.

Si este no es el comportamiento que está buscando, entonces la reducción de dimensionalidad de PCA no es el camino a seguir. Para algunos métodos simples de selección de características generales, puede echar un vistazo a sklearn.feature_selection