16 de marzo de 2019·6 minutos de lectura
¿Cómo se relacionan exactamente el análisis de componentes principales y la descomposición de valores singulares y cómo se implementan con numpy?
El análisis de componentes principales (PCA) y el análisis de valores singulares (SVD) son comunesnorteUsó enfoques de reducción de dimensionalidad en el análisis exploratorio de datos (EDA) y el aprendizaje automático. Ambos son métodos clásicos de reducción de dimensionalidad lineal que intentan encontrar combinaciones lineales de características en la matriz de datos original de alta dimensión para crear una representación significativa del conjunto de datos. Se ven favorecidos por varios campos cuando se trata de reducir la dimensionalidad: los PCA son ampliamente utilizados por los biólogos para analizar y visualizar variaciones de fuentes en conjuntos de datos de genética de poblaciones, transcriptómica, proteómica y microbioma. Mientras tanto, SVD, especialmente su versión reducida, SVD truncada, es más popular en el campo del procesamiento del lenguaje natural para lograr la representación de matrices de frecuencia de palabras gigantescas y escasas.
Uno puede notar que los gráficos PCA y SVD resultantes son similares para algunos datos. De hecho, PCA y SVD están estrechamente relacionados. En esta publicación, usaré algo de álgebra lineal y algunas líneas de código numérico para ilustrar su relación.
Primero, repasemos rápidamente algunos conceptos básicos de álgebra lineal, ya que tanto PCA como SVD implican cierta descomposición de matrices.
- Transposición de matriz: Reindexar una matriz 2-D A para cambiar los índices de fila y columna, reemplazando efectivamente todos sus elementos a_{ij} Con Ají picante}. La notación para la transposición es un superíndice ⊤ o ‘ en la matriz. En numpy, puede llamar al método .T o .transpose() del objeto np.ndarray para transponer una matriz.
- producto escalar y multiplicación de matrices: el producto C=LEJOS de dos matrices A (n×m) Y B. (m × t) debe tener una forma norte × pag Solo puedes multiplicar dos matrices si la segunda dimensión de la primera coincide con la primera dimensión de la última. El elemento c_{ij} en la matriz resultante C se calcula como:
Puede ver que el artículo en la matriz de productos C es el producto punto del vector de fila y el vector de columna correspondientes en matrices A Y B.respectivamente.
- matriz inversa: Solo se pueden invertir matrices cuadradas, el producto de una matriz A (n×n) con su inversión a ^(-1) es una matriz identidad sí, donde los elementos de la diagonal son unos, todos los demás ceros. En numpy, una matriz se puede invertir usando la función np.linalg.inv.
- reordenamiento conjugado: definida como la transpuesta de una matriz conjugada. Suele estar marcado con un * o H (Hermitian) como superíndice. Una matriz conjugada es una matriz que se obtiene tomando el complejo conjugado de todos los elementos de la matriz original:
Piense en los números complejos, donde un número consta de una parte real y una parte imaginaria. Por ejemplo, a + ib es un número complejo, donde sí es la unidad imaginaria igual a la raíz cuadrada de -1. El complejo conjugado de a + ib es a-yo b. Dado que la mayoría de los conjuntos de datos con los que tratamos son matrices de números reales, la transpuesta conjugada es equivalente a la matriz de una transpuesta ordinaria.
- matriz de identidad: definida como una matriz cuadrada cuya transpuesta conjugada es también su inversa. Para una matriz unitaria tenemos su transpuesta igual a su inversa:
- Matriz de covarianza: La covarianza cuantifica la variabilidad común entre dos variables aleatorias X Y Y y se calcula como:
Una matriz de covarianza C es una matriz cuadrada de covarianzas por pares de características de la matriz de datos X (n muestras × m características). Observe a partir de la definición de covarianza que cuando dos variables aleatorias se centran en 0, las expectativas de la variable aleatoria…
[2021] PCA y SVD explicados con numpy {DH}
Sin comentarios