Utilice la descomposición de valores singulares SVD para reducir la dimensionalidad de big data
Definición de big data
Datos se define como una colección de datos tan grande que es difícil de procesar con tecnologías tradicionales. Big data tiene tres aspectos amplios:
La complejidad del procesamiento de dichos datos multidimensionales ha generado la necesidad de una variedad de técnicas de datos para filtrar la información y hacer que los datos parezcan resolver mejor el problema. Los filtros reducen la dimensionalidad al eliminar información redundante de conjuntos de datos de alta dimensión.
Podemos considerarlo como una compresión de información de datos, similar a comprimir 1000 1000 imágenes a una resolución de 64 64, también para poder comprender el significado de las imágenes.
El algoritmo central para la reducción de la dimensionalidad de big data es SVD, que es lo que a menudo llamamos descomposición de valores singulares. La fórmula de SVD es:
El significado de esta fórmula es descomponer la matriz de datos original M en el producto de tres matrices.
La clave es entender qué significa s, por ejemplo, la suma de todos los elementos de s es 100 y el primer valor de s es 99, lo que significa que el 99% de la información se almacena en la U y la Vh en una columna. Por lo tanto, puede descartar todas las columnas restantes después de la primera columna sin perder información importante sobre los datos, solo el 1% de la información, que no es demasiado importante para los datos.
Los datos M que deben escalarse en este ejemplo contienen 4 muestras, cada muestra consta de 3 valores de características. A continuación usaremos la función svd del módulo linalg para factorizar la matriz:
Los valores en s muestran que la primera columna contiene la mayor parte de la información (más del 80%). La segunda columna tiene algunos valores (alrededor del 14%) y la tercera columna contiene información de participación.
Por supuesto, la fórmula svd es reversible, es decir, las tres matrices descompuestas aún se pueden restaurar a las matrices originales mediante la multiplicación de puntos. Tenga en cuenta que la matriz s es en realidad una matriz diagonal y la reducción utiliza matrices diagonales para sus operaciones.
Como puede ver, la matriz back_M después de la restauración es la misma que la matriz M antes de la restauración.
A partir de las tres matrices generadas por SVD, busque una manera de eliminar la tercera columna. u toma U[:,:2] y se convierte en (4,2), s toma s[:2] y se convierte en (2,), Vh toma Vh[:2,:] y se convierte en (2,3)
Se puede ver que incluso si se pierde el valor de la última columna, la matriz restaurada todavía tiene algunas diferencias en comparación con el pasado, pero la diferencia no es grande. Es decir, puedes guardar valores pasados en menos dimensiones.
Al ver esto, puede que te sientas un poco confundido acerca de la reducción de dimensiones. Desde la matriz anterior (4,3) hasta las tres matrices actuales (4,3)(3,)(3,3), no solo no se ha reducido la dimensión, sino que se han agregado algunos datos.
Supongamos que ignoramos la información de la última columna y la convertimos en tres matrices (4,1), (1,), (1,3), desde los 4x3=12 números pasados hasta el presente. De hecho, 4+1+3 números han reducido la dimensionalidad. Pero, ¿cómo deberíamos utilizar estas tres matrices para el aprendizaje automático?