¿Es posible utilizar el análisis de componentes principales del núcleo (kPCA) para la indexación semántica latente (LSI) de la misma manera que se utiliza PCA?
Realizo LSI en R usando la prcomp
función PCA y extraigo las características con las cargas más altas de los primeros componentes. Por eso obtengo las características que describen mejor el componente.
Intenté usar la kpca
función (del kernlib
paquete) pero no puedo ver cómo acceder a los pesos de las características a un componente principal. ¿Es esto posible en general cuando se usan métodos de kernel?
r
pca
feature-selection
kernel-trick
usuario3683
fuente
fuente
Respuestas:
Creo que la respuesta a su pregunta es negativa: no es posible.
La PCA estándar se puede usar para la selección de características, porque cada componente principal es una combinación lineal de características originales, por lo que uno puede ver qué características originales contribuyen más a los componentes principales más prominentes, consulte, por ejemplo, aquí: Uso del análisis de componentes principales (PCA) para Selección de funciones .
Pero en el PCA del núcleo, cada componente principal es una combinación lineal de características en el espacio objetivo , y, por ejemplo, para el núcleo gaussiano (que a menudo se usa) el espacio objetivo es de dimensión infinita. Por lo tanto, el concepto de "cargas" realmente no tiene sentido para kPCA, y de hecho, los componentes principales del núcleo se calculan directamente, evitando el cálculo de los ejes principales (que para PCA estándar se dan en R
prcomp$rotation
), gracias a lo que se conoce como truco del grano . Ver, por ejemplo, aquí: ¿Kernel PCA con kernel lineal es equivalente a PCA estándar? para más detalles.Entonces no, no es posible. Al menos no hay una manera fácil.
fuente
El siguiente ejemplo (tomado del manual de referencia de kernlab) le muestra cómo acceder a los diversos componentes del kernel PCA:
¿Responde esto a tu pregunta?
fuente