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